People Cloud Public API (1.0.2)

Download OpenAPI specification:Download

A public API that lets client organizations retrieve profile info, create inquiries, and manage job positions.

User

Endpoints related to the authenticated user.

Get Current User Info

Returns the authenticated user's ID, name, email, and company name.

Authorizations:
ApiKeyAuth

Responses

Response samples

Content type
application/json
{
  • "id": 7,
  • "name": "Lawunn",
  • "email": "lawunnkhaing16@gmail.com",
  • "company": "La"
}

Create a new user

Create a new user via the public API. The wrapper will attempt to resolve or create company records and will enforce password confirmation and email uniqueness.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
type
string
name
required
string
email
required
string <email>
company_name
string
company_id
integer
password
required
string
confirm_password
required
string
phone
string

Responses

Request samples

Content type
application/json
{
  • "type": "client",
  • "name": "Alice Developer",
  • "email": "alice@example.com",
  • "company_name": "Example Oy",
  • "company_id": 0,
  • "password": "securepassword",
  • "confirm_password": "securepassword",
  • "phone": "+358401234567"
}

Response samples

Content type
application/json
{
  • "message": "New user added"
}

Edit an existing user

Update user fields. The public wrapper merges partial payloads with existing user data and enforces email uniqueness and password confirmation when changing password.

Authorizations:
ApiKeyAuth
path Parameters
id
required
integer

Numeric DB id of the user to update

Request Body schema: application/json
name
string
email
string <email>
object
phone
string
type
string
password
string
confirm_password
string

Responses

Request samples

Content type
application/json
{
  • "name": "Chaw Chaw",
  • "email": "updated@example.com",
  • "company": {
    },
  • "phone": "+358401234567",
  • "type": "client",
  • "password": "NewPass1234",
  • "confirm_password": "NewPass1234"
}

Response samples

Content type
application/json
{
  • "message": "New user added"
}

Soft-delete a user

Perform a soft-delete on the user record. This public wrapper only performs soft-delete and does not permanently remove records.

Authorizations:
ApiKeyAuth
path Parameters
id
required
integer

Numeric DB id of the user to soft-delete

Responses

Response samples

Content type
application/json
{
  • "message": "New user added"
}

Inquiries

Create and manage inquiries.

Create a New Inquiry

Allows a client to submit a new inquiry with basic metadata and one or more position needs.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
title
required
string
description
string
required
object
main_contact
string
required
Array of objects (HirePosition)

Responses

Request samples

Content type
application/json
{
  • "title": "Fullstack Developer",
  • "description": "<div>Project to build backend system</div>",
  • "industry": {
    },
  • "main_contact": "Lawunn (lawunnkhaing16@gmail.com, +358402224007)",
  • "hires": [
    ]
}

Response samples

Content type
application/json
{
  • "inquiry_id": "inq_abc123",
  • "status": "draft"
}

List User's Inquiries

Retrieve a list of all inquiries created by the authenticated user.

Authorizations:
ApiKeyAuth

Responses

Response samples

Content type
application/json
{
  • "inquiries_total": 19,
  • "search_progress": 5,
  • "contracts_signed": 0,
  • "group_name": "@gmail.com",
  • "total": 5,
  • "orders": [
    ]
}

Cancel an Inquiry (order)

Cancel an entire inquiry (order) and all its positions. This public endpoint forwards the request to the internal user API and returns the internal response.

Authorizations:
ApiKeyAuth
path Parameters
orderId
required
integer

ID of the inquiry (order) to cancel

Responses

Response samples

Content type
application/json
{
  • "message": "Inquiry successfully cancelled"
}

Positions

Manage job positions attached to inquiries.

Get all positions for an inquiry

Retrieve the list of positions under a given inquiry ID.

Authorizations:
None
path Parameters
orderId
required
integer

ID of the inquiry (order)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Cancel a Position in an Inquiry

Cancels an existing position (hire) under a given inquiry (order) using the public API.

Authorizations:
ApiKeyAuth
path Parameters
orderId
required
integer

ID of the inquiry (order)

positionId
required
integer

ID of the position to cancel

Responses

Response samples

Content type
application/json
{
  • "message": "Position successfully canceled"
}

Add New Position to Inquiry

Adds a new job position to an existing inquiry.

Authorizations:
ApiKeyAuth
path Parameters
orderId
required
integer

ID of the inquiry to add the position to

Request Body schema: application/json
stage
required
string
title
required
string
type
required
string
experience_level
string
is_remote_work
string
budget
required
string
allocation
string
language_reqs
string
job_start
required
string <date-time>
job_end
required
string <date-time>
description
required
string
Array of objects

Responses

Request samples

Content type
application/json
{
  • "stage": "draft",
  • "title": "Backend Dev",
  • "type": "external",
  • "experience_level": "Intermediate",
  • "is_remote_work": "no",
  • "budget": "5000",
  • "allocation": "10",
  • "language_reqs": "Finnish",
  • "job_start": "2025-11-01T16:30:00.000Z",
  • "job_end": "2025-11-30T16:00:00.000Z",
  • "description": "<div>fx</div>",
  • "order_need_reqs": [
    ]
}

Response samples

Content type
application/json
{
  • "message": "New position successfully added"
}

Contracts

Create a new Contract

Create a new contract. The public wrapper will attempt to resolve company names and create consultant records when provided.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
the_contract_id
string
client_contract_id
string
status
string
service_code
string
contract_start
string <date>
contract_end
string or null <date>
is_infinite
boolean
type
string
work_scope
string
notice_period
string
allocation
number
max_hours
integer
client_price
number
vendor_price
number
vat
number
seller_id
integer
hour_report
string
invoicing_channel
string
client_company_name
string
client_company_id
integer
client_business_id
string
unit
string
client_contact
string
client_purchase_order
string
vendor_company_name
string
vendor_company_for_client
string
vendor_contact
string
notes
string
object
Array of strings or string

Responses

Request samples

Content type
application/json
{
  • "the_contract_id": "CNTR-2026-0005",
  • "client_contract_id": "CL-5555",
  • "status": "ongoing",
  • "service_code": "SVC-01",
  • "contract_start": "2026-01-22",
  • "contract_end": "2019-08-24",
  • "is_infinite": true,
  • "type": "hourly",
  • "work_scope": "Development and consulting",
  • "notice_period": "14 days",
  • "allocation": 100,
  • "max_hours": 160,
  • "client_price": 120.5,
  • "vendor_price": 95,
  • "vat": 24,
  • "seller_id": 3,
  • "hour_report": "weekly",
  • "invoicing_channel": "email",
  • "client_company_name": "La",
  • "client_company_id": 0,
  • "client_business_id": "FI12345678",
  • "unit": "hours",
  • "client_contact": "John Doe",
  • "client_purchase_order": "PO-9876",
  • "vendor_company_name": "Law",
  • "vendor_company_for_client": "Provider for client view",
  • "vendor_contact": "Vendor Contact Name",
  • "notes": "Created via API - test contract",
  • "selected_consultant": {
    },
  • "consult_skills": [
    ]
}

Response samples

Content type
application/json
{
  • "message": "Contract created successfully",
  • "id": 26,
  • "the_contract_id": "CNTR-2026-0005"
}

Cancel / terminate a contract by contract id

Terminate a contract and (optionally) delete it from records via the public wrapper.

Authorizations:
ApiKeyAuth
path Parameters
the_contract_id
required
string

Public contract id (e.g. CNTR-2026-0005)

Responses

Response samples

Content type
application/json
{
  • "message": "Contract deleted successfully"
}

Cancel / terminate a contract by numeric id

Lookup contract by numeric DB id and perform termination via internal API dispatch.

Authorizations:
ApiKeyAuth
path Parameters
id
required
integer

Numeric DB id of the contract

Responses

Response samples

Content type
application/json
{
  • "message": "Contract deleted successfully"
}

Edit a contract by contract id

Update contract fields. The public wrapper will merge partial payloads with existing contract data to avoid clearing required fields.

Authorizations:
ApiKeyAuth
path Parameters
the_contract_id
required
string

Public contract id

Request Body schema: application/json
client_price
number
vendor_price
number
type
string
contract_start
string <date>
contract_end
string or null <date>
is_infinite
boolean
allocation
number
max_hours
integer
unit
string
service_code
string
work_scope
string
notice_period
string
client_company_name
string
client_company_id
integer
vendor_company_name
string
vendor_company_for_client
string
vendor_contact
string
notes
string
object
Array of strings or string

Responses

Request samples

Content type
application/json
{
  • "client_price": 150,
  • "vendor_price": 120,
  • "type": "hourly",
  • "contract_start": "2019-08-24",
  • "contract_end": "2019-08-24",
  • "is_infinite": true,
  • "allocation": 75,
  • "max_hours": 0,
  • "unit": "string",
  • "service_code": "string",
  • "work_scope": "string",
  • "notice_period": "string",
  • "client_company_name": "string",
  • "client_company_id": 0,
  • "vendor_company_name": "string",
  • "vendor_company_for_client": "string",
  • "vendor_contact": "string",
  • "notes": "string",
  • "selected_consultant": {
    },
  • "consult_skills": [
    ]
}

Response samples

Content type
application/json
{
  • "message": "Contract updated successfully"
}

Edit a contract by numeric id

Update contract fields by numeric DB id.

Authorizations:
ApiKeyAuth
path Parameters
id
required
integer

Numeric DB id of the contract

Request Body schema: application/json
client_price
number
vendor_price
number
type
string
contract_start
string <date>
contract_end
string or null <date>
is_infinite
boolean
allocation
number
max_hours
integer
unit
string
service_code
string
work_scope
string
notice_period
string
client_company_name
string
client_company_id
integer
vendor_company_name
string
vendor_company_for_client
string
vendor_contact
string
notes
string
object
Array of strings or string

Responses

Request samples

Content type
application/json
{
  • "client_price": 150,
  • "vendor_price": 120,
  • "type": "hourly",
  • "contract_start": "2019-08-24",
  • "contract_end": "2019-08-24",
  • "is_infinite": true,
  • "allocation": 75,
  • "max_hours": 0,
  • "unit": "string",
  • "service_code": "string",
  • "work_scope": "string",
  • "notice_period": "string",
  • "client_company_name": "string",
  • "client_company_id": 0,
  • "vendor_company_name": "string",
  • "vendor_company_for_client": "string",
  • "vendor_contact": "string",
  • "notes": "string",
  • "selected_consultant": {
    },
  • "consult_skills": [
    ]
}

Response samples

Content type
application/json
{
  • "message": "Contract updated successfully"
}