Projects API Reference

This page is not available in the language you requested. You have been redirected to the English version of the page.
Link to this page copied to clipboard

List your Axe Developer Hub projects and look up a project ID programmatically using the REST API

Not for use with personal data

The Projects endpoint returns the list of Axe Developer Hub projects your API key can access. Use it to discover a project's ID from its name, so you can pass that ID to the Sessions and Results API.

If you already know your project ID, you can find it in Axe Developer Hub and call the Sessions and Results API directly; you do not need this endpoint.

Authentication

All requests require an API key. Provide it using the X-API-Key header:

X-API-Key: <DEQUE_API_KEY>

Find your API key in the Axe Account Portal. Choose an Axe Developer Hub API key for web or CI/CD projects, or an Axe DevTools Mobile API key for mobile projects.

Access Control

  • Project members see only the projects they belong to.
  • Org Admins with an active Axe Developer Hub or Axe DevTools Mobile subscription see every project in their organization of that product type, regardless of project membership.
  • In both cases, the response is scoped to the API key's product: an Axe Developer Hub API key returns only Axe Developer Hub projects, and an Axe DevTools Mobile API key returns only Axe DevTools Mobile projects.

An inactive subscription returns 401 Unauthorized.

Projects Endpoint

Returns the list of projects the authenticated API key can access.

Request

  • Endpoint: GET https://axe.deque.com/api-pub/v1/results/projects
  • Headers (required):
    • X-API-Key: <DEQUE_API_KEY>
    • Accept: application/json

Query Parameters

All query parameters are optional.

Parameter Description
project_types Comma-separated list of project types to return, for example axe-devtools-watcher,axe-devtools-html. Also accepts the aliases web and mobile, which each expand to the concrete types for that product. When omitted, every project type your API key can access is returned.
page_size Number of projects to return per page. Default: 30. Maximum: 100. Values above the maximum are clamped to 100. See Cursor Pagination.
after Cursor value from the previous response, used to retrieve the next page. See Cursor Pagination.

Response Body

A successful response returns a JSON array of project objects. Each project object includes the following fields:

Field Type Description
project_id String Unique identifier for the project. Use this value as {project_id} when calling the Sessions endpoint.
name String The project's display name.
selected_project_type String The project's type, for example axe-devtools-watcher or axe-devtools-html.
role String Your role on the project, for example admin.
created_at String ISO 8601 UTC timestamp for when the project was created.
last_session_created_at String ISO 8601 UTC timestamp of the project's most recent session. null when the project has no sessions.
has_git_information Boolean Whether the project has associated Git metadata.
git_url String Git repository URL associated with the project. null when the project has no Git information.
latest_session Object Details of the project's most recent session, or null when the project has no sessions. To enumerate a project's sessions, use the Sessions endpoint rather than this field.

Example Response Body

[
  {
    "project_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "name": "webapp-ci",
    "selected_project_type": "axe-devtools-watcher",
    "role": "admin",
    "created_at": "2026-06-01T14:23:00.000Z",
    "last_session_created_at": "2026-06-14T09:12:00.000Z",
    "has_git_information": true,
    "git_url": "https://github.com/example/webapp",
    "latest_session": {
      "session_id": "0d4a85a2-9e6f-44ef-b814-fee8412abeb0",
      "created_at": "2026-06-14T09:12:00.000Z",
      "git_branch": "main"
    }
  },
  {
    "project_id": "f0e1d2c3-b4a5-6789-0123-456789abcdef",
    "name": "design-system",
    "selected_project_type": "axe-devtools-html",
    "role": "admin",
    "created_at": "2026-05-20T08:00:00.000Z",
    "last_session_created_at": null,
    "has_git_information": false,
    "git_url": null,
    "latest_session": null
  }
]

Cursor Pagination

Pagination is opt-in. A request that sends neither page_size nor after returns your complete project list in a single response, with no cursor header, exactly as if these parameters didn't exist.

To page through results instead, the Projects endpoint uses the same cursor-based pagination as the Sessions endpoint: when there are more results beyond the current page, an opaque cursor value is returned in the x-pagination-cursor response header. Pass this value as the after query parameter in your next request to retrieve the next page.

When the x-pagination-cursor header is absent from the response, you have reached the last page.

Look Up a Project ID by Name

This example uses curl and jq to find a project's ID from its name:

curl -s \
  -H "Accept: application/json" \
  -H "X-API-Key: $API_KEY" \
  "https://axe.deque.com/api-pub/v1/results/projects" \
  | jq -r '.[] | select(.name == "webapp-ci") | .project_id'

Pass the returned ID to the Sessions endpoint to list that project's sessions.

Projects Endpoint Error Responses

Status Cause
400 Bad Request The project_types value contains an invalid project type, the after cursor is malformed, or page_size/after was repeated in the query string.
401 Unauthorized The API key is invalid, missing, or the associated subscription is inactive.