openapi: 3.1.0 info: title: Worklittle Business Platform API version: 1.0.0 description: 'Business / platform surface of the Worklittle API: apply and Apply-with-AI sessions, People Search, job listings and employer posting, candidates and pipeline, employees, email and offers, webhooks, documents, attendance, surveys, resumes, cover letters, and agent document tools. Resolved from the provider''s $ref-based root spec at https://docs.worklittle.com/openapi/openapi.yaml (paths/platform.yaml fragments). Authenticate with Authorization: Bearer sk-wl-api01-....' servers: - url: https://api.worklittle.com security: - bearerAuth: [] paths: /jobs/apply: post: tags: - apply summary: API-key apply to hosted job security: - bearerAuth: [] parameters: - name: id in: path required: true schema: type: string responses: '200': description: OK '201': description: Created '400': $ref: ../openapi.yaml#/components/schemas/Error /jobs/apply/{id}: post: tags: - apply summary: API-key apply to hosted job security: - bearerAuth: [] parameters: - name: id in: path required: true schema: type: string responses: '200': description: OK '201': description: Created '400': $ref: ../openapi.yaml#/components/schemas/Error /jobs/applied: get: tags: - apply summary: List applied jobs security: - bearerAuth: [] parameters: - name: limit in: query schema: type: integer minimum: 1 maximum: 500 default: 200 - name: offset in: query schema: type: integer minimum: 0 default: 0 - name: status in: query description: Pipeline stage filter schema: type: string enum: - saved - in_progress - applied - interview - offer - rejected - withdrawn - skipped - viewed - name: fields in: query schema: type: string enum: - lite - full default: lite responses: '200': description: OK — count jobs: null has_more: null '201': description: Created '400': $ref: ../openapi.yaml#/components/schemas/Error /jobs/applied/{id}: get: tags: - apply summary: List applied jobs security: - bearerAuth: [] parameters: - name: limit in: query schema: type: integer minimum: 1 maximum: 500 default: 200 - name: offset in: query schema: type: integer minimum: 0 default: 0 - name: status in: query description: Pipeline stage filter schema: type: string enum: - saved - in_progress - applied - interview - offer - rejected - withdrawn - skipped - viewed - name: fields in: query schema: type: string enum: - lite - full default: lite responses: '200': description: OK — count jobs: null has_more: null '201': description: Created '400': $ref: ../openapi.yaml#/components/schemas/Error /jobs/saved: get: tags: - apply summary: Applied jobs board totals by stage description: 'Cheap totals for /saved column badges. Returns `total` plus `by_status` for every pipeline stage. Does not return job cards. ' security: - bearerAuth: [] responses: '200': description: OK — total by_status: null '400': $ref: ../openapi.yaml#/components/schemas/Error /jobs/resumes: post: tags: - agent-documents summary: Generate resume security: - bearerAuth: [] responses: '200': description: OK '201': description: Created '400': $ref: ../openapi.yaml#/components/schemas/Error /jobs/cover-letters: post: tags: - agent-documents summary: Generate cover letter security: - bearerAuth: [] responses: '200': description: OK '201': description: Created '400': $ref: ../openapi.yaml#/components/schemas/Error /people: get: tags: - people summary: Search people security: - bearerAuth: [] responses: '200': description: OK '201': description: Created '400': $ref: ../openapi.yaml#/components/schemas/Error /people/{id}/resume: get: tags: - people summary: Unlock person resume security: - bearerAuth: [] parameters: - name: id in: path required: true schema: type: string responses: '200': description: OK '201': description: Created '400': $ref: ../openapi.yaml#/components/schemas/Error /people/{id}/contact: get: tags: - people summary: Unlock person contact field security: - bearerAuth: [] parameters: - name: id in: path required: true schema: type: string responses: '200': description: OK '201': description: Created '400': $ref: ../openapi.yaml#/components/schemas/Error /business/jobs: get: tags: - job-listings summary: List or create job listings (POST) security: - bearerAuth: [] responses: '200': description: OK '201': description: Created '400': $ref: ../openapi.yaml#/components/schemas/Error /business/jobs/{id}: patch: tags: - job-listings summary: Update or delete listing security: - bearerAuth: [] parameters: - name: id in: path required: true schema: type: string responses: '200': description: OK '201': description: Created '400': $ref: ../openapi.yaml#/components/schemas/Error /business/jobs/{id}/applications: get: tags: - employer-jobs summary: List applications for job security: - bearerAuth: [] parameters: - name: id in: path required: true schema: type: string responses: '200': description: OK '201': description: Created '400': $ref: ../openapi.yaml#/components/schemas/Error /business/jobs/pipeline-stages: get: tags: - candidates summary: Pipeline stages security: - bearerAuth: [] responses: '200': description: OK '201': description: Created '400': $ref: ../openapi.yaml#/components/schemas/Error /business/teams: get: tags: - organization summary: Company organizations CRUD security: - bearerAuth: [] responses: '200': description: OK '201': description: Created '400': $ref: ../openapi.yaml#/components/schemas/Error /business/questions: get: tags: - organization summary: Interview questions security: - bearerAuth: [] responses: '200': description: OK '201': description: Created '400': $ref: ../openapi.yaml#/components/schemas/Error /business/candidates: get: tags: - candidates summary: List or patch candidates security: - bearerAuth: [] responses: '200': description: OK '201': description: Created '400': $ref: ../openapi.yaml#/components/schemas/Error /business/candidates/{id}: get: tags: - candidates summary: Candidate detail security: - bearerAuth: [] parameters: - name: id in: path required: true schema: type: string responses: '200': description: OK '201': description: Created '400': $ref: ../openapi.yaml#/components/schemas/Error /business/employees: get: tags: - employees summary: List or create employees security: - bearerAuth: [] responses: '200': description: OK '201': description: Created '400': $ref: ../openapi.yaml#/components/schemas/Error /business/employees/{id}: get: tags: - employees summary: Employee detail security: - bearerAuth: [] parameters: - name: id in: path required: true schema: type: string responses: '200': description: OK '201': description: Created '400': $ref: ../openapi.yaml#/components/schemas/Error /business/emails: get: tags: - email-offers summary: Email templates CRUD security: - bearerAuth: [] responses: '200': description: OK '201': description: Created '400': $ref: ../openapi.yaml#/components/schemas/Error /business/emails/sent: get: tags: - email-offers summary: List org sent emails (ATS + automation) with open stats security: - bearerAuth: [] parameters: - in: query name: source schema: type: string enum: - ats - automation - all - in: query name: status schema: type: string - in: query name: since schema: type: integer - in: query name: until schema: type: integer - in: query name: candidate_id schema: type: string - in: query name: cursor schema: type: string - in: query name: limit schema: type: integer responses: '200': description: OK '400': $ref: ../openapi.yaml#/components/schemas/Error /business/emails/sent/{id}: get: tags: - email-offers summary: Get one sent email with open rollups security: - bearerAuth: [] parameters: - in: path name: id required: true schema: type: string responses: '200': description: OK '404': $ref: ../openapi.yaml#/components/schemas/Error /usage: get: tags: - billing summary: Usage / audit logs with Destination fields (where_label, where_href). Same stream as Business Usage. description: 'Returns organization_logs (default source=all) including metered AI, free burns, and org activity. Each row may include where_label / where_href (Chat and Voice open absolute chat URLs when chat_id is known; Private has no link; job/survey/candidate destinations use product paths). Filter with source=public_api|platform_ai|org_activity for single-source cursor pagination (platform_ai and org_activity include where_*). ' security: - bearerAuth: [] parameters: - in: query name: source schema: type: string enum: - all - public_api - platform_ai - platform_fees - org_activity - in: query name: since schema: type: integer - in: query name: until schema: type: integer - in: query name: cursor schema: type: string - in: query name: limit schema: type: integer - in: query name: api_key_id schema: type: string - in: query name: route schema: type: string - in: query name: status schema: type: string responses: '200': description: OK '401': $ref: ../openapi.yaml#/components/schemas/Error /business/webhooks: get: tags: - webhooks summary: List or create webhooks security: - bearerAuth: [] responses: '200': description: OK '201': description: Created '400': $ref: ../openapi.yaml#/components/schemas/Error /business/webhooks/{id}: get: tags: - webhooks summary: Webhook detail / patch / delete security: - bearerAuth: [] parameters: - name: id in: path required: true schema: type: string responses: '200': description: OK '201': description: Created '400': $ref: ../openapi.yaml#/components/schemas/Error /business/documents: get: tags: - documents summary: HR documents list/create security: - bearerAuth: [] responses: '200': description: OK '201': description: Created '400': $ref: ../openapi.yaml#/components/schemas/Error /business/attendance: get: tags: - attendance summary: Attendance / calendar list security: - bearerAuth: [] responses: '200': description: OK '201': description: Created '400': $ref: ../openapi.yaml#/components/schemas/Error /business/surveys: get: tags: - surveys summary: Surveys list/create security: - bearerAuth: [] responses: '200': description: OK '201': description: Created '400': $ref: ../openapi.yaml#/components/schemas/Error /business/surveys/{id}: get: tags: - surveys summary: Survey detail security: - bearerAuth: [] parameters: - name: id in: path required: true schema: type: string responses: '200': description: OK '201': description: Created '400': $ref: ../openapi.yaml#/components/schemas/Error /v1/agent/tools: get: tags: - agent-documents summary: List agent tools security: - bearerAuth: [] responses: '200': description: OK '201': description: Created '400': $ref: ../openapi.yaml#/components/schemas/Error /v1/agent/tool: post: tags: - agent-documents summary: Run agent tool security: - bearerAuth: [] responses: '200': description: OK '201': description: Created '400': $ref: ../openapi.yaml#/components/schemas/Error components: securitySchemes: bearerAuth: type: http scheme: bearer bearerFormat: sk-wl-api01 schemas: Error: type: object properties: error: type: object properties: code: type: string message: type: string documentation_url: type: string format: uri description: Present on UNAUTHORIZED, FORBIDDEN, WORK_EMAIL_REQUIRED, PAYMENT_REQUIRED, RATE_LIMITED, and QUOTA_EXCEEDED. Points at the Help article for that code. parameters: id: name: id in: path required: true schema: type: string tags: - name: agent-documents - name: apply - name: attendance - name: billing - name: candidates - name: documents - name: email-offers - name: employees - name: employer-jobs - name: job-listings - name: organization - name: people - name: surveys - name: webhooks