API · Organization
Organization API
Manage organization settings, team members, invitations, and shipping addresses.
Organization
GET Get organization
/api/v1/organization/{uid}/
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
/api/v1/organization/{uid}/
Update display_name, slug, or logo. Requires owner or admin role.
Request
curl https://app.instica.com/api/v1/organization/org_xyz/ \
-H "Authorization: Bearer YOUR_TOKEN" Response — 200 OK
{
"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"
}
} Update organization
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
/api/v1/organization/{uid}/team/
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
/api/v1/organization/{uid}/team/{member_uid}/
Update a member's role. Requires owner or admin permissions.
DELETE Remove member
/api/v1/organization/{uid}/team/{member_uid}/
Remove a member from the organization. Cannot remove the owner.
Response — 200 OK
[
{
"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
}
] Update role
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 |
Send invitation
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"
}' Response — 201 Created
{
"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 |
Create address
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"
}' Response — 201 Created
{
"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
} Set primary
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