KlockworkKlockworkAPI
Solo

Solo workspace

Solo overview, billing, profile, and settings fields.

Base URL https://api.klockwork.org. Send the agency key and X-Klockwork-Talent (or talentId). The call acts as that active talent. /api/public/solo/public returns 404.

Get the overview

GET /api/public/solo/overview

Response 200: { overview: Overview }

FieldTypeRequired
activeSessionobject or nullyes
outstandingobjectyes
paidThisMonthobjectyes
medianTimeToPayDaysnumber, min 0 or nullyes
recentInvoicesarray of objectyes

activeSession object:

FieldTypeRequired
idstring (uuid)yes
clientIdstring (uuid)yes
clientNamestringyes
status"working" or "break" or "pending"yes
startedAtstringyes
startedAtMsinteger, min 0yes
summarystring or nullyes

outstanding object:

FieldTypeRequired
totalCentsinteger, min 0yes
currencystring, min 1, max 8yes
invoiceCountinteger, min 0yes

paidThisMonth object:

FieldTypeRequired
totalCentsinteger, min 0yes
currencystring, min 1, max 8yes
paymentCountinteger, min 0yes

recentInvoices items:

FieldTypeRequired
idstring (uuid)yes
clientNamestringyes
totalCentsinteger, min 0yes
currencystring, min 1, max 8yes
status"draft" or "sent" or "viewed" or "void" or "paid" or "overdue"yes
invoicePrefixstringyes
invoiceNumberintegeryes

Get billing

GET /api/public/solo/billing

changed is a boolean. events is the recent billing history, newest first, capped at 10.

Response 200: { account, events, changed }

FieldTypeRequired
clerkUserIdstring, min 1yes
plan"free" or "pro"yes
platformFeeBpsinteger, min 0yes
sourcestring, min 1yes
lastSyncedAtstringyes
createdAtstringyes
updatedAtstringyes

Each item in events:

FieldTypeRequired
idstring (uuid)yes
clerkUserIdstring, min 1yes
eventType"synced" or "plan_changed"yes
planBefore"free" or "pro" or nullyes
planAfter"free" or "pro"yes
platformFeeBpsAfterinteger, min 0yes
metaobjectyes
createdAtstringyes

Sync billing

POST /api/public/solo/billing

No request body.

Response 200: { account, changed }

FieldTypeRequired
clerkUserIdstring, min 1yes
plan"free" or "pro"yes
platformFeeBpsinteger, min 0yes
sourcestring, min 1yes
lastSyncedAtstringyes
createdAtstringyes
updatedAtstringyes

Get the business profile

GET /api/public/solo/business-profile

Response 200: { profile: Profile }

FieldTypeRequired
clerkUserIdstring, min 1yes
legalNamestringyes
tradeNamestring or nullyes
tinstring or nullyes
vatStatus"non_vat" or "vat_registered"yes
addressLinestringyes
citystringyes
provincestringyes
provinceIsostringyes
countrystring, min 1, max 8yes
invoiceEmailstringyes
phonestring or nullyes
websitestring or nullyes
createdAtstringyes
updatedAtstringyes

Replace the business profile

PUT /api/public/solo/business-profile

Request body:

FieldTypeRequired
legalNamestring, max 200yes
tradeNamestring, max 200, default ""no
tinstring, max 64, default ""no
vatStatus"non_vat" or "vat_registered"yes
addressLinestring, max 300yes
citystring, max 120yes
provincestring, max 120yes
provinceIsostring, max 16yes
countrystring, min 2, max 8yes
invoiceEmailstring, max 254yes
phonestring, max 40, default ""no
websitestring, max 300, default ""no

Response 200: { profile: Profile }

FieldTypeRequired
clerkUserIdstring, min 1yes
legalNamestringyes
tradeNamestring or nullyes
tinstring or nullyes
vatStatus"non_vat" or "vat_registered"yes
addressLinestringyes
citystringyes
provincestringyes
provinceIsostringyes
countrystring, min 1, max 8yes
invoiceEmailstringyes
phonestring or nullyes
websitestring or nullyes
createdAtstringyes
updatedAtstringyes

Get invoice defaults

GET /api/public/solo/invoice-defaults

Response 200: { defaults: Defaults }

FieldTypeRequired
clerkUserIdstring, min 1yes
invoicePrefixstring, min 1yes
nextNumberintegeryes
defaultCurrencystring, min 1, max 8yes
paymentTermsstring or nullyes
taxMode"none" or "vat_12" or "custom"yes
customTaxLabelstring or nullyes
customTaxRateBpsinteger, min 0 or nullyes
defaultNotesstring or nullyes
createdAtstringyes
updatedAtstringyes

Replace invoice defaults

PUT /api/public/solo/invoice-defaults

Request body:

FieldTypeRequired
invoicePrefixstring, min 1, max 32yes
nextNumberinteger, max 1000000000yes
defaultCurrencystring, min 1, max 8yes
paymentTermsstring, max 80 or nullno
taxMode"none" or "vat_12" or "custom"yes
customTaxLabelstring, max 80, default ""no
customTaxRateBpsinteger, min 0, max 100000 or nullno
defaultNotesstring, max 4000, default ""no

Response 200: { defaults: Defaults }

FieldTypeRequired
clerkUserIdstring, min 1yes
invoicePrefixstring, min 1yes
nextNumberintegeryes
defaultCurrencystring, min 1, max 8yes
paymentTermsstring or nullyes
taxMode"none" or "vat_12" or "custom"yes
customTaxLabelstring or nullyes
customTaxRateBpsinteger, min 0 or nullyes
defaultNotesstring or nullyes
createdAtstringyes
updatedAtstringyes

Get preferences

GET /api/public/solo/preferences

Response 200: { preferences: Preferences }

FieldTypeRequired
clerkUserIdstring, min 1yes
timezonestring, min 1yes
dateFormat"DD MMM YYYY" or "MMM DD, YYYY" or "YYYY-MM-DD"yes
weekStartsOn"monday" or "tuesday" or "wednesday" or "thursday" or "friday" or "saturday" or "sunday"yes
workDaysPerWeekinteger, min 1, max 7yes
theme"system" or "light" or "dark"yes
timeFormat"h12" or "h24"yes
defaultCurrencystring, min 1, max 8yes
idleReminderMinutes15 or 30 or 60 or nullyes
createdAtstringyes
updatedAtstringyes

Replace preferences

PUT /api/public/solo/preferences

Request body:

FieldTypeRequired
timezonestring, min 1yes
dateFormat"DD MMM YYYY" or "MMM DD, YYYY" or "YYYY-MM-DD"yes
weekStartsOn"monday" or "tuesday" or "wednesday" or "thursday" or "friday" or "saturday" or "sunday"yes
workDaysPerWeekinteger, min 1, max 7yes
theme"system" or "light" or "dark"yes
timeFormat"h12" or "h24"yes
defaultCurrencystring, min 1, max 8yes
idleReminderMinutes15 or 30 or 60 or nullyes

Response 200: { preferences: Preferences }

FieldTypeRequired
clerkUserIdstring, min 1yes
timezonestring, min 1yes
dateFormat"DD MMM YYYY" or "MMM DD, YYYY" or "YYYY-MM-DD"yes
weekStartsOn"monday" or "tuesday" or "wednesday" or "thursday" or "friday" or "saturday" or "sunday"yes
workDaysPerWeekinteger, min 1, max 7yes
theme"system" or "light" or "dark"yes
timeFormat"h12" or "h24"yes
defaultCurrencystring, min 1, max 8yes
idleReminderMinutes15 or 30 or 60 or nullyes
createdAtstringyes
updatedAtstringyes

Get notification settings

GET /api/public/solo/notification-settings

Response 200: { settings: Settings }

FieldTypeRequired
clerkUserIdstring, min 1yes
emailInvoicePaidbooleanyes
emailPaymentFailedbooleanyes
emailPayoutSentbooleanyes
browserTimerReminderbooleanyes
createdAtstringyes
updatedAtstringyes

Replace notification settings

PUT /api/public/solo/notification-settings

Request body:

FieldTypeRequired
emailInvoicePaidbooleanyes
emailPaymentFailedbooleanyes
emailPayoutSentbooleanyes
browserTimerReminderbooleanyes

Response 200: { settings: Settings }

FieldTypeRequired
clerkUserIdstring, min 1yes
emailInvoicePaidbooleanyes
emailPaymentFailedbooleanyes
emailPayoutSentbooleanyes
browserTimerReminderbooleanyes
createdAtstringyes
updatedAtstringyes

Get payout settings

GET /api/public/solo/payout-settings

Response 200: { settings: Settings }

FieldTypeRequired
clerkUserIdstring, min 1yes
method"bank_transfer" or "gcash" or "maya" or "wise" or "other"yes
bankNamestring or nullyes
accountNamestring or nullyes
accountNumberstring or nullyes
ewalletHandlestring or nullyes
paymentInstructionsstring or nullyes
provider"manual" or "paymongo"yes
status"not_started" or "pending" or "verified"yes
createdAtstringyes
updatedAtstringyes

Replace payout settings

PUT /api/public/solo/payout-settings

Request body:

FieldTypeRequired
method"bank_transfer" or "gcash" or "maya" or "wise" or "other"yes
bankNamestring, max 120, default ""no
accountNamestring, max 120, default ""no
accountNumberstring, max 64, default ""no
ewalletHandlestring, max 120, default ""no
paymentInstructionsstring, max 4000, default ""no
provider"manual" or "paymongo"yes
status"not_started" or "pending" or "verified"yes

Response 200: { settings: Settings }

FieldTypeRequired
clerkUserIdstring, min 1yes
method"bank_transfer" or "gcash" or "maya" or "wise" or "other"yes
bankNamestring or nullyes
accountNamestring or nullyes
accountNumberstring or nullyes
ewalletHandlestring or nullyes
paymentInstructionsstring or nullyes
provider"manual" or "paymongo"yes
status"not_started" or "pending" or "verified"yes
createdAtstringyes
updatedAtstringyes

On this page