Group14 Technologies Careers API

Public, unauthenticated read access to Group14 job openings and the department and location vocabularies that classify them — the machine-readable view of hiring across the Woodinville headquarters, the Moses Lake BAM-2 factory and the Sangju, South Korea BAM-3 joint-venture site. Verified live at 4 open roles, 19 departments and 19 job locations on 2026-08-22.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/group14-technologies-careers-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

group14-technologies-careers-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Group14 Technologies Careers API
  version: wp/v2
  description: Public, unauthenticated read access to Group14 Technologies job openings and the department and location
    vocabularies that classify them — the machine-readable view of the hiring surface at the Woodinville headquarters,
    the Moses Lake BAM-2 factory and the Sangju, South Korea BAM-3 joint-venture site. Verified live at 4 open roles,
    19 departments and 19 job locations on 2026-08-22. Group14 publishes no API documentation; this surface was
    discovered by probe and derived from the server's own OPTIONS schema documents.
  contact:
    name: Group14 Technologies
    url: https://group14.technology/contact/
  x-derived-from: https://group14.technology/wp-json/ route index + per-route HTTP OPTIONS schema documents
  x-derived-on: '2026-08-22'
  x-api-evangelist-note: Third-party profile. Group14 Technologies is a silicon battery materials manufacturer and
    publishes no developer program, no API documentation and no SDKs. This document describes the anonymously readable
    WordPress REST content API behind group14.technology. Every path, parameter and schema here was read from the
    server's own published OPTIONS documents on 2026-08-22 — nothing is invented.
servers:
- url: https://group14.technology/wp-json
  description: Group14 Technologies WordPress REST API
tags:
- name: Job Openings
  description: Open roles published on group14.technology/careers.
- name: Taxonomy
  description: The job-department and job-location vocabularies used to classify roles.
paths:
  /wp/v2/job-opening:
    get:
      operationId: listJobOpenings
      summary: List job opening records
      description: 'Anonymous, read-only listing of the `job-opening` collection on group14.technology. Verified
        live on 2026-08-22; the collection answers `Allow: GET` without credentials.'
      tags:
      - Job Openings
      parameters:
      - name: context
        in: query
        description: Scope under which the request is made; determines fields present in response.
        schema:
          type: string
          enum:
          - view
          - embed
          - edit
          default: view
      - name: page
        in: query
        description: Current page of the collection.
        schema:
          type: integer
          minimum: 1
          default: 1
      - name: per_page
        in: query
        description: Maximum number of items to be returned in result set.
        schema:
          type: integer
          minimum: 1
          maximum: 100
          default: 10
      - name: search
        in: query
        description: Limit results to those matching a string.
        schema:
          type: string
      - name: after
        in: query
        description: Limit response to posts published after a given ISO8601 compliant date.
        schema:
          type: string
          format: date-time
      - name: modified_after
        in: query
        description: Limit response to posts modified after a given ISO8601 compliant date.
        schema:
          type: string
          format: date-time
      - name: author
        in: query
        description: Limit result set to posts assigned to specific authors.
        schema:
          type: array
          default: []
          items:
            type: integer
      - name: author_exclude
        in: query
        description: Ensure result set excludes posts assigned to specific authors.
        schema:
          type: array
          default: []
          items:
            type: integer
      - name: before
        in: query
        description: Limit response to posts published before a given ISO8601 compliant date.
        schema:
          type: string
          format: date-time
      - name: modified_before
        in: query
        description: Limit response to posts modified before a given ISO8601 compliant date.
        schema:
          type: string
          format: date-time
      - name: exclude
        in: query
        description: Ensure result set excludes specific IDs.
        schema:
          type: array
          default: []
          items:
            type: integer
      - name: include
        in: query
        description: Limit result set to specific IDs.
        schema:
          type: array
          default: []
          items:
            type: integer
      - name: search_semantics
        in: query
        description: How to interpret the search input.
        schema:
          type: string
          enum:
          - exact
      - name: offset
        in: query
        description: Offset the result set by a specific number of items.
        schema:
          type: integer
      - name: order
        in: query
        description: Order sort attribute ascending or descending.
        schema:
          type: string
          enum:
          - asc
          - desc
          default: desc
      - name: orderby
        in: query
        description: Sort collection by post attribute.
        schema:
          type: string
          enum:
          - author
          - date
          - id
          - include
          - modified
          - parent
          - relevance
          - slug
          - include_slugs
          - title
          default: date
      - name: parent
        in: query
        description: Limit result set to items with particular parent IDs.
        schema:
          type: array
          default: []
          items:
            type: integer
      - name: parent_exclude
        in: query
        description: Limit result set to all items except those of a particular parent ID.
        schema:
          type: array
          default: []
          items:
            type: integer
      - name: search_columns
        in: query
        description: Array of column names to be searched.
        schema:
          type: array
          default: []
          items:
            enum:
            - post_title
            - post_content
            - post_excerpt
            type: string
      - name: slug
        in: query
        description: Limit result set to posts with one or more specific slugs.
        schema:
          type: array
          items:
            type: string
      - name: status
        in: query
        description: Limit result set to posts assigned one or more statuses.
        schema:
          type: array
          default: publish
          items:
            enum:
            - publish
            - future
            - draft
            - pending
            - private
            - trash
            - auto-draft
            - inherit
            - request-pending
            - request-confirmed
            - request-failed
            - request-completed
            - acf-disabled
            - dp-rewrite-republish
            - email_sent
            - email_failed
            - email_scheduled
            - any
            type: string
      - name: tax_relation
        in: query
        description: Limit result set based on relationship between multiple taxonomies.
        schema:
          type: string
          enum:
          - AND
          - OR
      - name: job-department
        in: query
        description: Limit result set to items with specific terms assigned in the job-department taxonomy.
        schema:
          type: object
      - name: job-department_exclude
        in: query
        description: Limit result set to items except those with specific terms assigned in the job-department taxonomy.
        schema:
          type: object
      - name: job-location
        in: query
        description: Limit result set to items with specific terms assigned in the job-location taxonomy.
        schema:
          type: object
      - name: job-location_exclude
        in: query
        description: Limit result set to items except those with specific terms assigned in the job-location taxonomy.
        schema:
          type: object
      - name: wpml_language
        in: query
        description: WPML's language code
        schema:
          type: string
          enum:
          - zh-hans
          - en
          - de
          - ja
          - ko
      responses:
        '200':
          description: A page of job opening records.
          headers:
            X-WP-Total: &id003
              description: Total number of records in the unpaginated collection.
              schema:
                type: integer
            X-WP-TotalPages: &id004
              description: Total number of pages available at the requested per_page.
              schema:
                type: integer
          content:
            application/json:
              schema:
                type: array
                items: &id001
                  $ref: '#/components/schemas/JobOpening'
        '400': &id005
          description: Invalid parameter — `rest_invalid_param`. The WordPress REST API rejected a query argument
            (out-of-range `per_page`, unknown `orderby`, malformed date).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401': &id002
          description: Unauthorized — `rest_forbidden` / `rest_cannot_read`. Returned when a non-public field or
            route (`context=edit`, users, MCP, abilities) is requested anonymously.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /wp/v2/job-opening/{id}:
    get:
      operationId: getJobOpening
      summary: Retrieve one job opening record
      description: Anonymous, read-only retrieval of a single `job-opening` record by its numeric WordPress id.
      tags:
      - Job Openings
      parameters:
      - name: id
        in: path
        required: true
        description: Unique identifier for the job opening.
        schema:
          type: integer
      - name: context
        in: query
        description: Scope under which the request is made; determines fields present in response. Anonymous callers
          may only use `view` and `embed`.
        schema:
          type: string
          enum:
          - view
          - embed
          default: view
      responses:
        '200':
          description: The requested job opening record.
          content:
            application/json:
              schema: *id001
        '401': *id002
        '404': &id007
          description: Not found — `rest_post_invalid_id`, `rest_no_route` or `rest_term_invalid`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /wp/v2/job-department:
    get:
      operationId: listJobDepartments
      summary: List job department records
      description: 'Anonymous, read-only listing of the `job-department` collection on group14.technology. Verified
        live on 2026-08-22; the collection answers `Allow: GET` without credentials.'
      tags:
      - Taxonomy
      parameters:
      - name: context
        in: query
        description: Scope under which the request is made; determines fields present in response.
        schema:
          type: string
          enum:
          - view
          - embed
          - edit
          default: view
      - name: page
        in: query
        description: Current page of the collection.
        schema:
          type: integer
          minimum: 1
          default: 1
      - name: per_page
        in: query
        description: Maximum number of items to be returned in result set.
        schema:
          type: integer
          minimum: 1
          maximum: 100
          default: 10
      - name: search
        in: query
        description: Limit results to those matching a string.
        schema:
          type: string
      - name: exclude
        in: query
        description: Ensure result set excludes specific IDs.
        schema:
          type: array
          default: []
          items:
            type: integer
      - name: include
        in: query
        description: Limit result set to specific IDs.
        schema:
          type: array
          default: []
          items:
            type: integer
      - name: order
        in: query
        description: Order sort attribute ascending or descending.
        schema:
          type: string
          enum:
          - asc
          - desc
          default: asc
      - name: orderby
        in: query
        description: Sort collection by term attribute.
        schema:
          type: string
          enum:
          - id
          - include
          - name
          - slug
          - include_slugs
          - term_group
          - description
          - count
          default: name
      - name: hide_empty
        in: query
        description: Whether to hide terms not assigned to any posts.
        schema:
          type: boolean
          default: false
      - name: parent
        in: query
        description: Limit result set to terms assigned to a specific parent.
        schema:
          type: integer
      - name: post
        in: query
        description: Limit result set to terms assigned to a specific post.
        schema:
          type: integer
          default: null
      - name: slug
        in: query
        description: Limit result set to terms with one or more specific slugs.
        schema:
          type: array
          items:
            type: string
      - name: wpml_language
        in: query
        description: WPML's language code
        schema:
          type: string
          enum:
          - zh-hans
          - en
          - de
          - ja
          - ko
      responses:
        '200':
          description: A page of job department records.
          headers:
            X-WP-Total: *id003
            X-WP-TotalPages: *id004
          content:
            application/json:
              schema:
                type: array
                items: &id006
                  $ref: '#/components/schemas/JobDepartment'
        '400': *id005
        '401': *id002
  /wp/v2/job-department/{id}:
    get:
      operationId: getJobDepartment
      summary: Retrieve one job department record
      description: Anonymous, read-only retrieval of a single `job-department` record by its numeric WordPress id.
      tags:
      - Taxonomy
      parameters:
      - name: id
        in: path
        required: true
        description: Unique identifier for the job department.
        schema:
          type: integer
      - name: context
        in: query
        description: Scope under which the request is made; determines fields present in response. Anonymous callers
          may only use `view` and `embed`.
        schema:
          type: string
          enum:
          - view
          - embed
          default: view
      responses:
        '200':
          description: The requested job department record.
          content:
            application/json:
              schema: *id006
        '401': *id002
        '404': *id007
  /wp/v2/job-location:
    get:
      operationId: listJobLocations
      summary: List job location records
      description: 'Anonymous, read-only listing of the `job-location` collection on group14.technology. Verified
        live on 2026-08-22; the collection answers `Allow: GET` without credentials.'
      tags:
      - Taxonomy
      parameters:
      - name: context
        in: query
        description: Scope under which the request is made; determines fields present in response.
        schema:
          type: string
          enum:
          - view
          - embed
          - edit
          default: view
      - name: page
        in: query
        description: Current page of the collection.
        schema:
          type: integer
          minimum: 1
          default: 1
      - name: per_page
        in: query
        description: Maximum number of items to be returned in result set.
        schema:
          type: integer
          minimum: 1
          maximum: 100
          default: 10
      - name: search
        in: query
        description: Limit results to those matching a string.
        schema:
          type: string
      - name: exclude
        in: query
        description: Ensure result set excludes specific IDs.
        schema:
          type: array
          default: []
          items:
            type: integer
      - name: include
        in: query
        description: Limit result set to specific IDs.
        schema:
          type: array
          default: []
          items:
            type: integer
      - name: order
        in: query
        description: Order sort attribute ascending or descending.
        schema:
          type: string
          enum:
          - asc
          - desc
          default: asc
      - name: orderby
        in: query
        description: Sort collection by term attribute.
        schema:
          type: string
          enum:
          - id
          - include
          - name
          - slug
          - include_slugs
          - term_group
          - description
          - count
          default: name
      - name: hide_empty
        in: query
        description: Whether to hide terms not assigned to any posts.
        schema:
          type: boolean
          default: false
      - name: parent
        in: query
        description: Limit result set to terms assigned to a specific parent.
        schema:
          type: integer
      - name: post
        in: query
        description: Limit result set to terms assigned to a specific post.
        schema:
          type: integer
          default: null
      - name: slug
        in: query
        description: Limit result set to terms with one or more specific slugs.
        schema:
          type: array
          items:
            type: string
      - name: wpml_language
        in: query
        description: WPML's language code
        schema:
          type: string
          enum:
          - zh-hans
          - en
          - de
          - ja
          - ko
      responses:
        '200':
          description: A page of job location records.
          headers:
            X-WP-Total: *id003
            X-WP-TotalPages: *id004
          content:
            application/json:
              schema:
                type: array
                items: &id008
                  $ref: '#/components/schemas/JobLocation'
        '400': *id005
        '401': *id002
  /wp/v2/job-location/{id}:
    get:
      operationId: getJobLocation
      summary: Retrieve one job location record
      description: Anonymous, read-only retrieval of a single `job-location` record by its numeric WordPress id.
      tags:
      - Taxonomy
      parameters:
      - name: id
        in: path
        required: true
        description: Unique identifier for the job location.
        schema:
          type: integer
      - name: context
        in: query
        description: Scope under which the request is made; determines fields present in response. Anonymous callers
          may only use `view` and `embed`.
        schema:
          type: string
          enum:
          - view
          - embed
          default: view
      responses:
        '200':
          description: The requested job location record.
          content:
            application/json:
              schema: *id008
        '401': *id002
        '404': *id007
components:
  schemas:
    Error:
      type: object
      description: WordPress REST API error envelope. This is NOT RFC 9457 problem+json; it is served as application/json.
      properties:
        code:
          type: string
          description: Machine-readable WordPress error slug, e.g. rest_invalid_param.
        message:
          type: string
          description: Human-readable message.
        data:
          type: object
          description: Additional context.
          properties:
            status:
              type: integer
              description: HTTP status code.
      required:
      - code
      - message
    JobOpening:
      type: object
      title: job-opening
      properties:
        date:
          description: The date the post was published, in the site's timezone.
          type: string
          format: date-time
        date_gmt:
          description: The date the post was published, as GMT.
          type: string
          format: date-time
        guid:
          description: The globally unique identifier for the post.
          type: object
          properties:
            raw:
              description: GUID for the post, as it exists in the database.
              type: string
            rendered:
              description: GUID for the post, transformed for display.
              type: string
        id:
          description: Unique identifier for the post.
          type: integer
        link:
          description: URL to the post.
          type: string
          format: uri
        modified:
          description: The date the post was last modified, in the site's timezone.
          type: string
          format: date-time
        modified_gmt:
          description: The date the post was last modified, as GMT.
          type: string
          format: date-time
        slug:
          description: An alphanumeric identifier for the post unique to its type.
          type: string
        status:
          description: A named status for the post.
          type: string
          enum:
          - publish
          - future
          - draft
          - pending
          - private
          - acf-disabled
        type:
          description: Type of post.
          type: string
        password:
          description: A password to protect access to the content and excerpt.
          type: string
        permalink_template:
          description: Permalink template for the post.
          type: string
        generated_slug:
          description: Slug automatically generated from the post title.
          type: string
        class_list:
          description: An array of the class names for the post container element.
          type: array
          items:
            type: string
        parent:
          description: The ID for the parent of the post.
          type: integer
        title:
          description: The title for the post.
          type: object
          properties:
            raw:
              description: Title for the post, as it exists in the database.
              type: string
            rendered:
              description: HTML title for the post, transformed for display.
              type: string
        author:
          description: The ID for the author of the post.
          type: integer
        excerpt:
          description: The excerpt for the post.
          type: object
          properties:
            raw:
              description: Excerpt for the post, as it exists in the database.
              type: string
            rendered:
              description: HTML excerpt for the post, transformed for display.
              type: string
            protected:
              description: Whether the excerpt is protected with a password.
              type: boolean
        featured_media:
          description: The ID of the featured media for the post.
          type: integer
        template:
          description: The theme file to use to display the post.
          type: string
        job-department:
          description: The terms assigned to the post in the job-department taxonomy.
          type: array
          items:
            type: integer
        job-location:
          description: The terms assigned to the post in the job-location taxonomy.
          type: array
          items:
            type: integer
        acf:
          description: ACF field data
          type: object
          properties: {}
    JobDepartment:
      type: object
      title: job-department
      properties:
        id:
          description: Unique identifier for the term.
          type: integer
        count:
          description: Number of published posts for the term.
          type: integer
        description:
          description: HTML description of the term.
          type: string
        link:
          description: URL of the term.
          type: string
          format: uri
        name:
          description: HTML title for the term.
          type: string
        slug:
          description: An alphanumeric identifier for the term unique to its type.
          type: string
        taxonomy:
          description: Type attribution for the term.
          type: string
          enum:
          - job-department
        parent:
          description: The parent term ID.
          type: integer
        meta:
          description: Meta fields.
          type: object
          properties: {}
        acf:
          description: ACF field data
          type: object
          properties: {}
    JobLocation:
      type: object
      title: job-location
      properties:
        id:
          description: Unique identifier for the term.
          type: integer
        count:
          description: Number of published posts for the term.
          type: integer
        description:
          description: HTML description of the term.
          type: string
        link:
          description: URL of the term.
          type: string
          format: uri
        name:
          description: HTML title for the term.
          type: string
        slug:
          description: An alphanumeric identifier for the term unique to its type.
          type: string
        taxonomy:
          description: Type attribution for the term.
          type: string
          enum:
          - job-location
        parent:
          description: The parent term ID.
          type: integer
        meta:
          description: Meta fields.
          type: object
          properties: {}
        acf:
          description: ACF field data
          type: object
          properties: {}