limit (integer, 1-100) - Number of results per page (default: 10)next (string) - Pagination cursor for next pageteam (string) - gigstack Connect: Target team ID{
"message": "Users retrieved successfully",
"data": [
{
"id": "user_1234567890",
"email": "john.doe@example.com",
"name": "John Doe",
"role": "admin",
"created_at": 1677651234
},
{
"id": "user_9876543210",
"email": "jane.smith@example.com",
"name": "Jane Smith",
"role": "member",
"created_at": 1677651234
}
],
"has_more": false,
"total_results": 2
}{
"email": "new.user@example.com",
"first_name": "New",
"last_name": "User",
"phone": "+52 55 1234 5678",
"company_role": "Developer",
"address": {
"country": "MEX",
"street": "Av. Reforma",
"zip": "06500",
"city": "Ciudad de México",
"state": "CDMX",
"exterior": "456",
"neighborhood": "Juárez"
},
"auto_join": true,
"role": "editor"
}email (string, optional) - User email addressfirst_name (string, optional) - User first namelast_name (string, optional) - User last namephone (string, optional) - User phone numbercompany_role (string, optional) - User role in the companyaddress (object, optional) - User address informationcountry (string, optional) - Country namestreet (string, optional) - Street addresszip (string, optional) - Postal codecity (string, optional) - City namestate (string, optional) - State/provinceexterior (string, optional) - Exterior numbermunicipality (string, optional) - Municipality (stored but not returned in responses)neighborhood (string, optional) - Neighborhood/colonyauto_join (boolean, optional) - If true, automatically adds the user to the team associated with the API key. Defaults to false. When true and role is specified, the user will be added to the team with that role.role (string, optional) - Role to assign to the user when auto_join is true. Can be "editor", "admin", or "viewer". Defaults to "viewer" if not specified. This parameter only takes effect when auto_join is true - it determines the permissions the user will have within the team.municipality field can be included in requests and will be stored, but is not returned in response objects.auto_join is true, the user will be automatically added to the team and billing account associated with your API key.role parameter works in conjunction with auto_join. When both are used, the user is added to the team with the specified role (editor, admin, or viewer). If role is not specified, the user defaults to "viewer" role.{
"message": "User created successfully",
"data": {
"id": "user_new123456",
"email": "developer@company.com",
"name": "Carlos Rodriguez",
"role": "member",
"created_at": 1677651234,
"invitation_sent": true
}
}{
"message": "User retrieved successfully",
"data": {
"id": "user_1234567890",
"email": "john.doe@example.com",
"name": "John Doe",
"first_name": "John",
"last_name": "Doe",
"phone": "+52 55 1234 5678",
"company_role": "Manager",
"role": "admin",
"address": {
"country": "MEX",
"street": "Av. Insurgentes Sur",
"zip": "03100",
"city": "Ciudad de México",
"state": "CDMX",
"exterior": "123",
"neighborhood": "Del Valle"
},
"created_at": 1677651234,
"last_login": 1677737634,
"teams": [
{
"team_id": "team_1234567890",
"team_name": "Main Company",
"role": "admin"
},
{
"team_id": "team_0987654321",
"team_name": "Subsidiary",
"role": "viewer"
}
]
}
}{
"first_name": "Jonathan",
"last_name": "Doe",
"phone": "+52 55 5555 5555",
"company_role": "Senior Manager",
"address": {
"zip": "03200",
"neighborhood": "Del Valle Sur"
}
}{
"email": "user@example.com"
}{
"message": "Password reset email sent",
"data": {
"email": "john.doe@example.com",
"reset_link_sent": true,
"expires_at": 1677655834
}
}team query parameter.{
"user_id": "abc123xyz"
}user_id (required, string) - The Firebase UID of the user{
"message": "Login link generated",
"data": {
"login_link": "https://app.gigstack.pro/auth/token-login?token=eyJhbGc...",
"valid_until": 1732657200000,
"method": "token"
}
}login_link (string) - The login URL with embedded tokenvalid_until (number) - Unix timestamp in milliseconds when the token expires (1 hour from generation)method (string) - The authentication method used (always 'token'){
"message": "User not found or not accessible via API",
"error": "The user either does not exist or was not created via API"
}| Field | Type | Description |
|---|---|---|
id | string | Unique user identifier |
email | string | User's email address (unique) |
first_name | string | User's first name |
last_name | string | User's last name |
name | string | Full name (computed) |
phone | string | Contact phone number |
company_role | string | Position in company |
role | string | System role (admin/member/viewer) |
address | object | User's address information |
created_at | number | Unix timestamp of creation |
{
"country": "MEX",
"street": "Street name",
"zip": "12345",
"city": "City",
"state": "State",
"exterior": "123",
"neighborhood": "Neighborhood"
}municipality field can be included in POST/PUT requests and will be stored in the database, but is not returned in GET responses.country, street, zip, city, state, exterior, neighborhood| Role | Permissions | Description |
|---|---|---|
| admin | Full access | Can manage team and billing |
| member | Read/Write | Can create and edit resources |
| viewer | Read only | Can only view resources |
| Action | Admin | Member | Viewer |
|---|---|---|---|
| View resources | Yes | Yes | Yes |
| Create invoices | Yes | Yes | No |
| Edit clients | Yes | Yes | No |
| Manage users | Yes | No | No |
| Change settings | Yes | No | No |
| Delete team | Yes | No | No |
| Manage billing | Yes | No | No |
{
"message": "User creation failed",
"error": "Email address already registered"
}{
"message": "Invalid request",
"error": "Email format is invalid"
}{
"message": "User not found",
"error": "The specified user does not exist"
}{
"message": "Access denied",
"error": "Admin role required to manage users"
}{
"message": "Password reset failed",
"error": "No user found with that email address"
}{
"message": "User not found or not accessible via API",
"error": "This user was not created through the API or does not exist"
}{
"message": "Access denied",
"error": "User does not belong to your billing account"
}