Latea API reference

Every action the Latea dashboard performs is available over a JSON HTTP API, authenticated with a key you issue yourself. This page documents 72 operations across 14 resource groups, generated from the same OpenAPI description the server validates incoming requests against.

Download the OpenAPI spec (JSON)

Getting started

Base URL

Every path below is relative to:

https://latea.strangeskills.com/api

Authentication

Create a key in the dashboard under /dashboard/latea/settings/apikeys, then send it in the apikey header on every request:

curl 'https://latea.strangeskills.com/api/users/apikeys' \
  -H 'apikey: YOUR_API_KEY'

Three properties of a key matter before you build against it:

  • A key belongs to one organization. Every request is scoped to that organization's data. There is no cross-organization or account-wide key.
  • A key belongs to one product. A Latea key is refused with app_not_allowed on another product's endpoints, and with app_not_enabled if the organization has not enabled Latea.
  • A key can be read-only. A read-only key answers GET, HEAD and OPTIONS and returns read_only_key on anything that writes — the safer key to hand to a script or an assistant.

The dashboard authenticates with a session cookie instead, which is why operations below list both schemes. For an integration, the API key is the one you want.

Errors

Errors come back as JSON, with the HTTP status repeated in the body:

{ "statusCode": 403, "code": "read_only_key", "message": "Read-only API key" }
StatusCodeMeaning
400validationThe request body or query does not match the schema.
401unauthorizedNo API key or session, or the key does not exist.
403forbiddenThe key is valid but not allowed to perform this operation.
403read_only_keyA read-only key attempted a write.
403app_not_enabledThe organization does not have this product enabled.
403app_not_allowedThe key belongs to a different product.
404not_foundNo such route, or no such record in this organization.
500internalUnexpected server error.

Model Context Protocol

The same key authenticates an MCP endpoint, so an assistant can drive Latea directly instead of composing HTTP calls. It speaks Streamable HTTP and offers the operations below as tools, filtered to what the key is allowed to do:

https://latea.strangeskills.com/mcp
Authorization: Bearer YOUR_API_KEY

Reference

72 operations

Latea

Customer subscriptions

get/subscriptions/entity

Get entity subscriptions

Parameters
NameInTypeRequired
entityIdqueryintegerno
planIdqueryintegerno
statusquerystringno
searchquerystringno
Responses
StatusDescriptionBody
200List of entity subscriptionsEntitySubscription[]
Example
curl -X GET 'https://latea.strangeskills.com/api/subscriptions/entity' \
  -H 'apikey: YOUR_API_KEY'

post/subscriptions/entity

Create an entity subscription

Request body
  • application/json — { planId, entityId }
Responses
StatusDescriptionBody
201Created subscription{ id, stripeSubscriptionId, clientSecret, status }
Example
curl -X POST 'https://latea.strangeskills.com/api/subscriptions/entity' \
  -H 'apikey: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{ ... }'

get/subscriptions/entity/{id}

Get an entity subscription

Parameters
NameInTypeRequired
idpathintegeryes
Responses
StatusDescriptionBody
200Entity subscriptionEntitySubscription
Example
curl -X GET 'https://latea.strangeskills.com/api/subscriptions/entity/{id}' \
  -H 'apikey: YOUR_API_KEY'

post/subscriptions/entity/{id}/cancel

Cancel an entity subscription

Parameters
NameInTypeRequired
idpathintegeryes
Responses
StatusDescriptionBody
204Subscription cancelled
Example
curl -X POST 'https://latea.strangeskills.com/api/subscriptions/entity/{id}/cancel' \
  -H 'apikey: YOUR_API_KEY'

post/subscriptions/entity/{id}/pause

Pause an entity subscription

Parameters
NameInTypeRequired
idpathintegeryes
Responses
StatusDescriptionBody
204Subscription paused
Example
curl -X POST 'https://latea.strangeskills.com/api/subscriptions/entity/{id}/pause' \
  -H 'apikey: YOUR_API_KEY'

post/subscriptions/entity/{id}/resume

Resume an entity subscription

Parameters
NameInTypeRequired
idpathintegeryes
Responses
StatusDescriptionBody
204Subscription resumed
Example
curl -X POST 'https://latea.strangeskills.com/api/subscriptions/entity/{id}/resume' \
  -H 'apikey: YOUR_API_KEY'

Documents

get/latea/documents

Get documents

Parameters
NameInTypeRequired
fieldquerystringyes
orderquerystringyes
offsetquerynumberyes
limitquerynumberyes
searchquerystringno
startDatequerystringno
endDatequerystringno
documentTypequerystringno
yearquerynumberno
formatquerystringno
Responses
StatusDescriptionBody
200Document meta information.{ list, count }
defaultError{ statusCode, code, message }
Example
curl -X GET 'https://latea.strangeskills.com/api/latea/documents' \
  -H 'apikey: YOUR_API_KEY'

post/latea/documents

Put document

Request body
  • application/json — { reference, uniqueExternalRef, entityId, entityName, date, dueDate, duplicatedDate, discountPercentage, entityTaxNumber, address, serieId, serieName, documentType, taxExemptionId, observations, movementStartDate, movementEndDate, fromAddress, toAddress, lines }
Responses
StatusDescriptionBody
201Document information.Document
defaultError{ statusCode, code, message, data }
Example
curl -X POST 'https://latea.strangeskills.com/api/latea/documents' \
  -H 'apikey: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{ ... }'

post/latea/documents/at/communicate

Communicate document to AT

Request body
  • application/json — { id, serieId }
Responses
StatusDescriptionBody
204Document communicated.
defaultError{ statusCode, code, message }
Example
curl -X POST 'https://latea.strangeskills.com/api/latea/documents/at/communicate' \
  -H 'apikey: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{ ... }'

put/latea/documents/cancel

Cancel document

Request body
  • application/json — { id, serieId, cancelledMotive }
Responses
StatusDescriptionBody
204Document cancelled.
defaultError{ statusCode, code, message }
Example
curl -X PUT 'https://latea.strangeskills.com/api/latea/documents/cancel' \
  -H 'apikey: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{ ... }'

get/latea/documents/document/{id}/serie/{serieId}

Get document

Parameters
NameInTypeRequired
idpathnumberyes
serieIdpathnumberyes
formatquerystringno
modequerystringno
templatequerynumberno
originalOnlyquerybooleanno
Responses
StatusDescriptionBody
200Document data.string
defaultError{ statusCode, code, message }
Example
curl -X GET 'https://latea.strangeskills.com/api/latea/documents/document/{id}/serie/{serieId}' \
  -H 'apikey: YOUR_API_KEY'

get/latea/documents/summary

Get document summary

Responses
StatusDescriptionBody
200Document summary information.{ invoiced, totalInvoicedCurrentYear, totalInvoicedCurrentMonth, totalInvoicedToday }
defaultError{ statusCode, code, message }
Example
curl -X GET 'https://latea.strangeskills.com/api/latea/documents/summary' \
  -H 'apikey: YOUR_API_KEY'

Entities

get/latea/entities

Get entities

Parameters
NameInTypeRequired
fieldquerystringyes
orderquerystringyes
offsetquerynumberyes
limitquerynumberyes
searchquerystringno
Responses
StatusDescriptionBody
200Entity information.{ list, count }
defaultError{ statusCode, code, message }
Example
curl -X GET 'https://latea.strangeskills.com/api/latea/entities' \
  -H 'apikey: YOUR_API_KEY'

post/latea/entities

Put entity

Request body
  • application/json — { name, taxNumber, email, telephone, mobile, type }
Responses
StatusDescriptionBody
201Entity information.Entity
defaultError{ statusCode, code, message }
Example
curl -X POST 'https://latea.strangeskills.com/api/latea/entities' \
  -H 'apikey: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{ ... }'

put/latea/entities

Update entity

Request body
  • application/json — object
Responses
StatusDescriptionBody
200Entity information.Entity
defaultError{ statusCode, code, message }
Example
curl -X PUT 'https://latea.strangeskills.com/api/latea/entities' \
  -H 'apikey: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{ ... }'

post/latea/entities/address

Put entity address

Request body
  • application/json — { addressDetail, postalCode, city, country }
Responses
StatusDescriptionBody
201Entity address information.Address
defaultError{ statusCode, code, message }
Example
curl -X POST 'https://latea.strangeskills.com/api/latea/entities/address' \
  -H 'apikey: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{ ... }'

put/latea/entities/address

Update entity address

Request body
  • application/json — { id, addressDetail, postalCode, city, country }
Responses
StatusDescriptionBody
200Entity address information.Address
defaultError{ statusCode, code, message }
Example
curl -X PUT 'https://latea.strangeskills.com/api/latea/entities/address' \
  -H 'apikey: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{ ... }'

delete/latea/entities/address/entity/{entityId}/id/{id}

Delete entity address

Parameters
NameInTypeRequired
entityIdpathnumberyes
idpathnumberyes
Responses
StatusDescriptionBody
204Success
defaultError{ statusCode, code, message }
Example
curl -X DELETE 'https://latea.strangeskills.com/api/latea/entities/address/entity/{entityId}/id/{id}' \
  -H 'apikey: YOUR_API_KEY'

get/latea/entities/id/{id}

Get entity

Parameters
NameInTypeRequired
idpathnumberyes
Responses
StatusDescriptionBody
200Entity information.Entity
defaultError{ statusCode, code, message }
Example
curl -X GET 'https://latea.strangeskills.com/api/latea/entities/id/{id}' \
  -H 'apikey: YOUR_API_KEY'

delete/latea/entities/id/{id}

Delete entity

Parameters
NameInTypeRequired
idpathnumberyes
Responses
StatusDescriptionBody
204Success.
defaultError{ statusCode, code, message }
Example
curl -X DELETE 'https://latea.strangeskills.com/api/latea/entities/id/{id}' \
  -H 'apikey: YOUR_API_KEY'

get/latea/entities/id/{id}/addresses

Get entity addresses

Parameters
NameInTypeRequired
idpathnumberyes
Responses
StatusDescriptionBody
200Entity addresses information.{ list, count }
defaultError{ statusCode, code, message }
Example
curl -X GET 'https://latea.strangeskills.com/api/latea/entities/id/{id}/addresses' \
  -H 'apikey: YOUR_API_KEY'

Exports

get/latea/exports/saft/{year}

Export a year's SAFT

Parameters
NameInTypeRequired
yearpathnumberyes
Responses
StatusDescriptionBody
200Saft.string
defaultError{ statusCode, code, message }
Example
curl -X GET 'https://latea.strangeskills.com/api/latea/exports/saft/{year}' \
  -H 'apikey: YOUR_API_KEY'

get/latea/exports/saft/{year}/{month}

Export SAFT

Parameters
NameInTypeRequired
yearpathnumberyes
monthpathnumberyes
Responses
StatusDescriptionBody
200Saft.string
defaultError{ statusCode, code, message }
Example
curl -X GET 'https://latea.strangeskills.com/api/latea/exports/saft/{year}/{month}' \
  -H 'apikey: YOUR_API_KEY'

Products

get/latea/products

Get products

Parameters
NameInTypeRequired
fieldquerystringyes
orderquerystringyes
offsetquerynumberyes
limitquerynumberyes
searchquerystringno
Responses
StatusDescriptionBody
200Product meta information.{ list, count }
defaultError{ statusCode, code, message }
Example
curl -X GET 'https://latea.strangeskills.com/api/latea/products' \
  -H 'apikey: YOUR_API_KEY'

post/latea/products

Put product

Request body
  • application/json — { reference, description, taxId, type, controlStock }
Responses
StatusDescriptionBody
201Product information.Product
defaultError{ statusCode, code, message }
Example
curl -X POST 'https://latea.strangeskills.com/api/latea/products' \
  -H 'apikey: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{ ... }'

put/latea/products

Update product

Request body
  • application/json — { id, reference, description, taxId, type, controlStock }
Responses
StatusDescriptionBody
200Product information.Product
defaultError{ statusCode, code, message }
Example
curl -X PUT 'https://latea.strangeskills.com/api/latea/products' \
  -H 'apikey: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{ ... }'

get/latea/products/forline

Get products for line

Parameters
NameInTypeRequired
fieldquerystringyes
orderquerystringyes
offsetquerynumberyes
limitquerynumberyes
searchquerystringno
Responses
StatusDescriptionBody
200Product line information.{ list, count }
defaultError{ statusCode, code, message }
Example
curl -X GET 'https://latea.strangeskills.com/api/latea/products/forline' \
  -H 'apikey: YOUR_API_KEY'

get/latea/products/id/{id}

Get product

Parameters
NameInTypeRequired
idpathnumberyes
Responses
StatusDescriptionBody
200Product information.Product
defaultError{ statusCode, code, message }
Example
curl -X GET 'https://latea.strangeskills.com/api/latea/products/id/{id}' \
  -H 'apikey: YOUR_API_KEY'

delete/latea/products/id/{id}

Delete product

Parameters
NameInTypeRequired
idpathnumberyes
Responses
StatusDescriptionBody
204Success
defaultError{ statusCode, code, message }
Example
curl -X DELETE 'https://latea.strangeskills.com/api/latea/products/id/{id}' \
  -H 'apikey: YOUR_API_KEY'

post/latea/products/info

Get info for products

Request body
  • application/json — { productIds }
Responses
StatusDescriptionBody
200Product information.{ productId, reference, type, controlStock, stock }[]
defaultError{ statusCode, code, message }
Example
curl -X POST 'https://latea.strangeskills.com/api/latea/products/info' \
  -H 'apikey: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{ ... }'

Regions

get/latea/regions

Get regions

Responses
StatusDescriptionBody
200Region information.{ list, count }
defaultError{ statusCode, code, message }
Example
curl -X GET 'https://latea.strangeskills.com/api/latea/regions' \
  -H 'apikey: YOUR_API_KEY'

Series

get/latea/series

Get series

Parameters
NameInTypeRequired
activequerybooleanno
documentTypequerystringno
Responses
StatusDescriptionBody
200Serie meta information.{ list, count }
defaultError{ statusCode, code, message }
Example
curl -X GET 'https://latea.strangeskills.com/api/latea/series' \
  -H 'apikey: YOUR_API_KEY'

post/latea/series

Create serie

Request body
  • application/json — { name, documentType, manual, duplicated, atcud, active }
Responses
StatusDescriptionBody
201Serie information.Serie
defaultError{ statusCode, code, message }
Example
curl -X POST 'https://latea.strangeskills.com/api/latea/series' \
  -H 'apikey: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{ ... }'

put/latea/series

Update serie

Request body
  • application/json — { id, active }
Responses
StatusDescriptionBody
200Serie information.Serie
defaultError{ statusCode, code, message }
Example
curl -X PUT 'https://latea.strangeskills.com/api/latea/series' \
  -H 'apikey: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{ ... }'

delete/latea/series/id/{id}

Delete serie

Parameters
NameInTypeRequired
idpathnumberyes
Responses
StatusDescriptionBody
204Success
defaultError{ statusCode, code, message }
Example
curl -X DELETE 'https://latea.strangeskills.com/api/latea/series/id/{id}' \
  -H 'apikey: YOUR_API_KEY'

Taxes

get/latea/taxes

Get taxes

Responses
StatusDescriptionBody
200Taxes information.TaxMeta[]
defaultError{ statusCode, code, message }
Example
curl -X GET 'https://latea.strangeskills.com/api/latea/taxes' \
  -H 'apikey: YOUR_API_KEY'

post/latea/taxes

Put tax

Request body
  • application/json — { code, description, active }
Responses
StatusDescriptionBody
201Tax information.TaxMeta
defaultError{ statusCode, code, message }
Example
curl -X POST 'https://latea.strangeskills.com/api/latea/taxes' \
  -H 'apikey: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{ ... }'

put/latea/taxes

Update tax

Request body
  • application/json — { id, code, description, active }
Responses
StatusDescriptionBody
200Tax information.TaxMeta
defaultError{ statusCode, code, message }
Example
curl -X PUT 'https://latea.strangeskills.com/api/latea/taxes' \
  -H 'apikey: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{ ... }'

get/latea/taxes/id/{id}

Get tax

Parameters
NameInTypeRequired
idpathnumberyes
Responses
StatusDescriptionBody
200Tax information.Tax
defaultError{ statusCode, code, message }
Example
curl -X GET 'https://latea.strangeskills.com/api/latea/taxes/id/{id}' \
  -H 'apikey: YOUR_API_KEY'

delete/latea/taxes/id/{id}

Delete tax

Parameters
NameInTypeRequired
idpathnumberyes
Responses
StatusDescriptionBody
204Success.
defaultError{ statusCode, code, message }
Example
curl -X DELETE 'https://latea.strangeskills.com/api/latea/taxes/id/{id}' \
  -H 'apikey: YOUR_API_KEY'

put/latea/taxes/regions

Update tax region

Request body
  • application/json — { taxId, regions }
Responses
StatusDescriptionBody
200Tax regions information.{ taxId, regions }
defaultError{ statusCode, code, message }
Example
curl -X PUT 'https://latea.strangeskills.com/api/latea/taxes/regions' \
  -H 'apikey: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{ ... }'

Taxexemptions

get/latea/taxexemptions

Get tax exemptions

Responses
StatusDescriptionBody
200Tax exemptions information.TaxExemption[]
defaultError{ statusCode, code, message }
Example
curl -X GET 'https://latea.strangeskills.com/api/latea/taxexemptions' \
  -H 'apikey: YOUR_API_KEY'

Account and platform

Auth

post/auth

Authenticate

Request body
  • application/json — object
Responses
StatusDescriptionBody
204Success.
defaultError{ statusCode, code, message }
Example
curl -X POST 'https://latea.strangeskills.com/api/auth' \
  -H 'apikey: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{ ... }'

post/auth/logout

Logout

Responses
StatusDescriptionBody
204Success.
Example
curl -X POST 'https://latea.strangeskills.com/api/auth/logout' \
  -H 'apikey: YOUR_API_KEY'

put/auth/password

Change Password

Request body
  • application/json — { password, newpassword }
Responses
StatusDescriptionBody
204Success.
defaultError{ statusCode, code, message }
Example
curl -X PUT 'https://latea.strangeskills.com/api/auth/password' \
  -H 'apikey: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{ ... }'

post/auth/recover

Request password recovery

Request body
  • application/json — PasswordRecoverRequest
Responses
StatusDescriptionBody
204Success.
defaultError{ statusCode, code, message }
Example
curl -X POST 'https://latea.strangeskills.com/api/auth/recover' \
  -H 'apikey: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{ ... }'

post/auth/recover/confirm

Confirm password recovery

Request body
  • application/json — PasswordRecoverConfirm
Responses
StatusDescriptionBody
204Success.
defaultError{ statusCode, code, message }
Example
curl -X POST 'https://latea.strangeskills.com/api/auth/recover/confirm' \
  -H 'apikey: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{ ... }'

get/auth/user

Authentication

Responses
StatusDescriptionBody
200Auth data{ id, name, type, organizations, organizationId, apps }
defaultError{ statusCode, code, message }
Example
curl -X GET 'https://latea.strangeskills.com/api/auth/user' \
  -H 'apikey: YOUR_API_KEY'

Generic

get/generic/countries

Get countries

Responses
StatusDescriptionBody
200Countries information list.Country[]
defaultError{ statusCode, code, message }
Example
curl -X GET 'https://latea.strangeskills.com/api/generic/countries' \
  -H 'apikey: YOUR_API_KEY'

Organizations

get/organizations

Get organization

Responses
StatusDescriptionBody
200Organization information.Organization
defaultError{ statusCode, code, message }
Example
curl -X GET 'https://latea.strangeskills.com/api/organizations' \
  -H 'apikey: YOUR_API_KEY'

post/organizations

Create organization

Request body
  • application/json — { name, taxNumber, email, password, address, key, app }
Responses
StatusDescriptionBody
201Organization information.Organization
defaultError{ statusCode, code, message }
Example
curl -X POST 'https://latea.strangeskills.com/api/organizations' \
  -H 'apikey: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{ ... }'

put/organizations

Update organization

Request body
  • application/json — { id, name, taxNumber, email, address }
Responses
StatusDescriptionBody
200Organization information.Organization
defaultError{ statusCode, code, message }
Example
curl -X PUT 'https://latea.strangeskills.com/api/organizations' \
  -H 'apikey: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{ ... }'

get/organizations/all

Get all organizations (superadmin only)

Parameters
NameInTypeRequired
searchquerystringno
limitqueryintegerno
Responses
StatusDescriptionBody
200Organization list{ id, name, email, taxNumber }[]
Example
curl -X GET 'https://latea.strangeskills.com/api/organizations/all' \
  -H 'apikey: YOUR_API_KEY'

get/organizations/configuration

Get organization configuration

Responses
StatusDescriptionBody
200Organization configuration.{ organizationId, atUsername, atPassword }
defaultError{ statusCode, code, message }
Example
curl -X GET 'https://latea.strangeskills.com/api/organizations/configuration' \
  -H 'apikey: YOUR_API_KEY'

put/organizations/configuration

Update organization configuration

Request body
  • application/json — { atUsername, atPassword }
Responses
StatusDescriptionBody
200Organization configuration.{ organizationId, atUsername, atPassword }
defaultError{ statusCode, code, message }
Example
curl -X PUT 'https://latea.strangeskills.com/api/organizations/configuration' \
  -H 'apikey: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{ ... }'

delete/organizations/{id}

Delete organization

Parameters
NameInTypeRequired
idpathnumberyes
Responses
StatusDescriptionBody
204Success.
defaultError{ statusCode, code, message }
Example
curl -X DELETE 'https://latea.strangeskills.com/api/organizations/{id}' \
  -H 'apikey: YOUR_API_KEY'

Subscriptions

post/subscriptions

Create subscription

Request body
  • application/json — { app, name }
Responses
StatusDescriptionBody
201Subscription information.{ id, paymentStripeId, paymentURL }
defaultError{ statusCode, code, message }
Example
curl -X POST 'https://latea.strangeskills.com/api/subscriptions' \
  -H 'apikey: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{ ... }'

get/subscriptions/app-plans

Get active app plans for organizations

Parameters
NameInTypeRequired
appquerystringyes
Responses
StatusDescriptionBody
200List of active plans for the appPlan[]
defaultError
Example
curl -X GET 'https://latea.strangeskills.com/api/subscriptions/app-plans' \
  -H 'apikey: YOUR_API_KEY'

post/subscriptions/organization/{id}/cancel

Cancel organization subscription at period end

Parameters
NameInTypeRequired
idpathintegeryes
Responses
StatusDescriptionBody
204Subscription cancellation scheduled
Example
curl -X POST 'https://latea.strangeskills.com/api/subscriptions/organization/{id}/cancel' \
  -H 'apikey: YOUR_API_KEY'

post/subscriptions/organization/{id}/change-plan

Change organization subscription plan

Parameters
NameInTypeRequired
idpathintegeryes
Request body
  • application/json — { planId }
Responses
StatusDescriptionBody
204Subscription updated
Example
curl -X POST 'https://latea.strangeskills.com/api/subscriptions/organization/{id}/change-plan' \
  -H 'apikey: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{ ... }'

post/subscriptions/organization/{id}/resume

Resume organization subscription cancellation

Parameters
NameInTypeRequired
idpathintegeryes
Responses
StatusDescriptionBody
204Subscription resumed
Example
curl -X POST 'https://latea.strangeskills.com/api/subscriptions/organization/{id}/resume' \
  -H 'apikey: YOUR_API_KEY'

get/subscriptions/public/app-plans

Get public app plans

Parameters
NameInTypeRequired
appquerystringyes
Responses
StatusDescriptionBody
200List of active plans for the appPlan[]
defaultError
Example
curl -X GET 'https://latea.strangeskills.com/api/subscriptions/public/app-plans' \
  -H 'apikey: YOUR_API_KEY'

get/subscriptions/{app}

Get subscription

Parameters
NameInTypeRequired
apppathstringyes
Responses
StatusDescriptionBody
200Subscription meta information.Subscription
defaultError{ statusCode, code, message }
Example
curl -X GET 'https://latea.strangeskills.com/api/subscriptions/{app}' \
  -H 'apikey: YOUR_API_KEY'

Users

get/users

Get users

Responses
StatusDescriptionBody
200User information.User[]
defaultError{ statusCode, code, message }
Example
curl -X GET 'https://latea.strangeskills.com/api/users' \
  -H 'apikey: YOUR_API_KEY'

post/users

Create user

Request body
  • application/json — { name, username, password }
Responses
StatusDescriptionBody
201User information.User
defaultError{ statusCode, code, message }
Example
curl -X POST 'https://latea.strangeskills.com/api/users' \
  -H 'apikey: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{ ... }'

put/users

Update user

Request body
  • application/json — { id, name, username, password }
Responses
StatusDescriptionBody
200User information.User
defaultError{ statusCode, code, message }
Example
curl -X PUT 'https://latea.strangeskills.com/api/users' \
  -H 'apikey: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{ ... }'

get/users/apikeys

Get user api keys

Responses
StatusDescriptionBody
200The keys of the app the caller is authenticated for. A key belongs to one app and the other apps never see it. APIKey[]
defaultError{ statusCode, code, message }
Example
curl -X GET 'https://latea.strangeskills.com/api/users/apikeys' \
  -H 'apikey: YOUR_API_KEY'

post/users/apikeys

Create user api key

Request body
  • application/json — { name, readOnly }
Responses
StatusDescriptionBody
201User API Key information.APIKey
defaultError{ statusCode, code, message }
Example
curl -X POST 'https://latea.strangeskills.com/api/users/apikeys' \
  -H 'apikey: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{ ... }'

put/users/apikeys

Update user api key

Request body
  • application/json — { id, name }
Responses
StatusDescriptionBody
200User API Key information.APIKey
defaultError{ statusCode, code, message }
Example
curl -X PUT 'https://latea.strangeskills.com/api/users/apikeys' \
  -H 'apikey: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{ ... }'

delete/users/apikeys/{id}

Delete user api key

Parameters
NameInTypeRequired
idpathnumberyes
Responses
StatusDescriptionBody
204Success.
defaultError{ statusCode, code, message }
Example
curl -X DELETE 'https://latea.strangeskills.com/api/users/apikeys/{id}' \
  -H 'apikey: YOUR_API_KEY'

delete/users/{id}

Delete user

Parameters
NameInTypeRequired
idpathnumberyes
Responses
StatusDescriptionBody
204Success.
defaultError{ statusCode, code, message }
Example
curl -X DELETE 'https://latea.strangeskills.com/api/users/{id}' \
  -H 'apikey: YOUR_API_KEY'