API · Organization
Organization API
Manage organization settings, team members, invitations, and shipping addresses.
Organization
GET Get organization
Returns organization details. The organization UID is available from the user profile response.
Organization fields
| Field | Type | Description |
|---|---|---|
uid | string | Organization identifier |
display_name | string | Display name (writable) |
slug | string | URL slug (writable) |
logo | string | null | Logo URL |
created | string | ISO 8601 creation date |
owner | object | Owner user summary |
member_count | integer | Total team members |
primary_address | object | null | Primary shipping address |
PATCH Update organization
Update display_name, slug, or logo. Requires owner or admin role.
curl https://app.instica.com/api/v1/organization/org_xyz/ \
-H "Authorization: Bearer YOUR_TOKEN" {
"uid": "org_xyz",
"display_name": "Jane's Records",
"slug": "janes-records",
"logo": "https://cdn.instica.com/orgs/org_xyz/logo.png",
"created": "2024-01-15T10:30:00Z",
"owner": {
"uid": "usr_abc123",
"username": "vinyl_dealer",
"first_name": "Jane",
"last_name": "Smith"
},
"member_count": 3,
"primary_address": {
"uid": "addr_001",
"full_name": "Jane Smith",
"line1": "123 Main St",
"city": "Portland",
"state": "OR",
"postal_code": "97201",
"country": "US"
}
} curl -X PATCH \
https://app.instica.com/api/v1/organization/org_xyz/ \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"display_name": "Jane's Vinyl Shop"
}' Team management
GET List team members
Returns all members of the organization with their roles.
Member fields
| Field | Type | Description |
|---|---|---|
uid | string | Membership identifier |
user | object | User summary (uid, username, email, first_name, last_name) |
role | string | owner, admin, or member |
joined | string | ISO 8601 join date |
is_active | boolean | Whether the member is active |
PATCH Update member role
Update a member's role. Requires owner or admin permissions.
DELETE Remove member
Remove a member from the organization. Cannot remove the owner.
[
{
"uid": "mem_001",
"user": {
"uid": "usr_abc123",
"username": "vinyl_dealer",
"email": "dealer@example.com",
"first_name": "Jane",
"last_name": "Smith"
},
"role": "owner",
"joined": "2024-01-15T10:30:00Z",
"is_active": true
},
{
"uid": "mem_002",
"user": {
"uid": "usr_def456",
"username": "helper",
"email": "helper@example.com",
"first_name": "Bob",
"last_name": "Jones"
},
"role": "member",
"joined": "2024-06-01T14:00:00Z",
"is_active": true
}
] curl -X PATCH \
https://app.instica.com/api/v1/organization/org_xyz/team/mem_002/ \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "role": "admin" }' Invitations
| Endpoint | Method | Description |
|---|---|---|
/api/v1/organization/{uid}/invite/ | POST | Send an invitation |
/api/v1/organization/{uid}/invitations/ | GET | List pending invitations |
/api/v1/organization/{uid}/invitations/{invite_uid}/ | DELETE | Revoke an invitation |
Invite request body
| Field | Type | Required | Description |
|---|---|---|---|
email | string | Yes | Email to invite |
role | string | No | Role to assign — defaults to member |
Invitation fields
| Field | Type | Description |
|---|---|---|
uid | string | Invitation identifier |
email | string | Invited email address |
role | string | Assigned role |
status | string | pending, accepted, expired |
created | string | ISO 8601 created date |
expires | string | ISO 8601 expiry date |
curl -X POST \
https://app.instica.com/api/v1/organization/org_xyz/invite/ \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"email": "newmember@example.com",
"role": "admin"
}' {
"uid": "inv_789",
"email": "newmember@example.com",
"role": "admin",
"status": "pending",
"created": "2025-01-20T12:00:00Z",
"expires": "2025-02-20T12:00:00Z"
} Addresses
Manage organization shipping addresses. Addresses are used as return addresses for marketplace listings and shipping labels.
| Endpoint | Method | Description |
|---|---|---|
/api/v1/organization/{uid}/addresses/ | GET | List addresses |
/api/v1/organization/{uid}/addresses/ | POST | Create address |
/api/v1/organization/{uid}/addresses/{addr_uid}/ | PATCH | Update address |
/api/v1/organization/{uid}/addresses/{addr_uid}/ | DELETE | Delete address |
/api/v1/organization/{uid}/addresses/{addr_uid}/set-primary/ | POST | Set as primary address |
Address fields
| Field | Type | Description |
|---|---|---|
uid | string | Address identifier |
full_name | string | Recipient name |
company | string | Company or business name |
line1 | string | Street address line 1 |
line2 | string | Apartment, suite, etc. |
city | string | City |
state | string | State or province |
postal_code | string | ZIP or postal code |
country | string | ISO 3166-1 alpha-2 code |
phone | string | Contact phone number |
is_primary | boolean | Whether this is the primary address |
is_validated | boolean | Whether address has been validated |
curl -X POST \
https://app.instica.com/api/v1/organization/org_xyz/addresses/ \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"full_name": "Jane Smith",
"line1": "123 Main St",
"city": "Portland",
"state": "OR",
"postal_code": "97201",
"country": "US",
"phone": "+15551234567"
}' {
"uid": "addr_002",
"full_name": "Jane Smith",
"company": "",
"line1": "123 Main St",
"line2": "",
"city": "Portland",
"state": "OR",
"postal_code": "97201",
"country": "US",
"phone": "+15551234567",
"is_primary": false,
"is_validated": false
} curl -X POST \
https://app.instica.com/api/v1/organization/org_xyz/addresses/addr_002/set-primary/ \
-H "Authorization: Bearer YOUR_TOKEN"
# Response: 200 OK