HashiCorp Nomad ACL API

Endpoints for managing Access Control List policies, tokens, and authentication methods.

Operations 9

GET /acl/policies List ACL policies #
GET /acl/policy/{policyName} Read an ACL policy #
PUT /acl/policy/{policyName} Create or update an ACL policy #
DELETE /acl/policy/{policyName} Delete an ACL policy #
GET /acl/tokens List ACL tokens #
PUT /acl/token Create an ACL token #
GET /acl/token/self Read own ACL token #
GET /acl/token/{tokenAccessorID} Read an ACL token #
DELETE /acl/token/{tokenAccessorID} Delete an ACL token #

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/nomad-acl-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 form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

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

OpenAPI Specification

nomad-acl-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: HashiCorp Nomad HTTP ACL API
  description: The HashiCorp Nomad HTTP API provides programmatic access to all Nomad functionality including job scheduling, allocation management, node operations, deployments, services, evaluations, namespaces, ACL policies, and cluster status. All API routes are prefixed with /v1/ and the default port is 4646. The API is RESTful, responds to standard HTTP verbs, and supports ACL token authentication via the X-Nomad-Token header or Bearer scheme.
  version: 1.9.0
  contact:
    name: HashiCorp Support
    url: https://support.hashicorp.com
  termsOfService: https://www.hashicorp.com/terms-of-service
  license:
    name: Business Source License 1.1
    url: https://github.com/hashicorp/nomad/blob/main/LICENSE
servers:
- url: http://localhost:4646/v1
  description: Local Nomad Agent
security:
- nomadToken: []
- bearerAuth: []
tags:
- name: ACL
  description: Endpoints for managing Access Control List policies, tokens, and authentication methods.
paths:
  /acl/policies:
    get:
      operationId: listACLPolicies
      summary: List ACL policies
      description: Lists all ACL policies in the system.
      tags:
      - ACL
      parameters:
      - $ref: '#/components/parameters/PrefixParam'
      responses:
        '200':
          description: A list of ACL policies
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ACLPolicyListStub'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/InternalError'
  /acl/policy/{policyName}:
    get:
      operationId: readACLPolicy
      summary: Read an ACL policy
      description: Returns the details of the specified ACL policy.
      tags:
      - ACL
      parameters:
      - name: policyName
        in: path
        required: true
        description: The name of the ACL policy.
        schema:
          type: string
      responses:
        '200':
          description: ACL policy details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ACLPolicy'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalError'
    put:
      operationId: upsertACLPolicy
      summary: Create or update an ACL policy
      description: Creates a new ACL policy or updates an existing one.
      tags:
      - ACL
      parameters:
      - name: policyName
        in: path
        required: true
        description: The name of the ACL policy.
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ACLPolicy'
      responses:
        '200':
          description: ACL policy upserted
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/InternalError'
    delete:
      operationId: deleteACLPolicy
      summary: Delete an ACL policy
      description: Deletes the specified ACL policy.
      tags:
      - ACL
      parameters:
      - name: policyName
        in: path
        required: true
        description: The name of the ACL policy.
        schema:
          type: string
      responses:
        '200':
          description: ACL policy deleted
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalError'
  /acl/tokens:
    get:
      operationId: listACLTokens
      summary: List ACL tokens
      description: Lists all ACL tokens in the system.
      tags:
      - ACL
      parameters:
      - $ref: '#/components/parameters/PrefixParam'
      responses:
        '200':
          description: A list of ACL tokens
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ACLTokenListStub'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/InternalError'
  /acl/token:
    put:
      operationId: createACLToken
      summary: Create an ACL token
      description: Creates a new ACL token.
      tags:
      - ACL
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ACLToken'
      responses:
        '200':
          description: ACL token created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ACLToken'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/InternalError'
  /acl/token/self:
    get:
      operationId: readSelfACLToken
      summary: Read own ACL token
      description: Returns the details of the ACL token used to make the request.
      tags:
      - ACL
      responses:
        '200':
          description: ACL token details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ACLToken'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/InternalError'
  /acl/token/{tokenAccessorID}:
    get:
      operationId: readACLToken
      summary: Read an ACL token
      description: Returns the details of the specified ACL token by accessor ID.
      tags:
      - ACL
      parameters:
      - name: tokenAccessorID
        in: path
        required: true
        description: The accessor ID of the ACL token.
        schema:
          type: string
      responses:
        '200':
          description: ACL token details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ACLToken'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalError'
    delete:
      operationId: deleteACLToken
      summary: Delete an ACL token
      description: Deletes the specified ACL token.
      tags:
      - ACL
      parameters:
      - name: tokenAccessorID
        in: path
        required: true
        description: The accessor ID of the ACL token.
        schema:
          type: string
      responses:
        '200':
          description: ACL token deleted
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalError'
components:
  parameters:
    PrefixParam:
      name: prefix
      in: query
      description: Specifies a string to filter results based on an ID prefix.
      schema:
        type: string
  schemas:
    ACLToken:
      type: object
      description: An ACL token used for authentication and authorization.
      properties:
        AccessorID:
          type: string
          description: The public accessor ID of the token.
        SecretID:
          type: string
          description: The secret ID used for API authentication.
        Name:
          type: string
          description: A human-readable name for the token.
        Type:
          type: string
          description: The type of token.
          enum:
          - client
          - management
        Policies:
          type: array
          items:
            type: string
          description: A list of ACL policy names associated with the token.
        Global:
          type: boolean
          description: If true, the token is replicated across all regions.
        CreateTime:
          type: string
          format: date-time
        ExpirationTime:
          type: string
          format: date-time
        CreateIndex:
          type: integer
        ModifyIndex:
          type: integer
    ACLPolicy:
      type: object
      description: An ACL policy defining permissions for Nomad resources.
      properties:
        Name:
          type: string
          description: The name of the ACL policy.
        Description:
          type: string
          description: A human-readable description of the policy.
        Rules:
          type: string
          description: The HCL or JSON policy rules specification.
        CreateIndex:
          type: integer
        ModifyIndex:
          type: integer
    ACLTokenListStub:
      type: object
      description: A stub representation of an ACL token.
      properties:
        AccessorID:
          type: string
        Name:
          type: string
        Type:
          type: string
        Policies:
          type: array
          items:
            type: string
        Global:
          type: boolean
        CreateTime:
          type: string
          format: date-time
        ExpirationTime:
          type: string
          format: date-time
        CreateIndex:
          type: integer
        ModifyIndex:
          type: integer
    ACLPolicyListStub:
      type: object
      description: A stub representation of an ACL policy.
      properties:
        Name:
          type: string
        Description:
          type: string
        CreateIndex:
          type: integer
        ModifyIndex:
          type: integer
  responses:
    Unauthorized:
      description: Unauthorized - missing or invalid ACL token
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
    InternalError:
      description: Internal server error
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
    BadRequest:
      description: Bad request
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
  securitySchemes:
    nomadToken:
      type: apiKey
      name: X-Nomad-Token
      in: header
      description: ACL token passed via the X-Nomad-Token request header.
    bearerAuth:
      type: http
      scheme: bearer
      description: ACL token passed via the Authorization header with Bearer scheme.
externalDocs:
  description: Nomad HTTP API Documentation
  url: https://developer.hashicorp.com/nomad/api-docs