Find a projectLook up a module, theme or distribution on drupal.org by its machine name and get what it is, who maintains it, whether it takes issues and whether it has releases. Paste the project URL and the name is taken out of it. This is the first step for anything else that names a project.
Browse projectsBrowse the modules, themes and distributions published on drupal.org, newest first by default. Use it to watch what is being released, to build a digest of new contributions, or to page through a category. Note that drupal.org has tens of thousands of projects, so this pages rather than returning everything.
List a project's releasesList the releases published for a module, theme or Drupal core, newest first, each with its download link and how drupal.org labels it. Use it to build a changelog, to find the download URL for a particular version, or to see how actively a project is maintained.
Check for security updatesAsk whether a project needs updating, and whether it is urgent. Give it the version you run and it says plainly whether that release is one drupal.org has marked insecure, whether the project has been abandoned, and what to move to. Being on a release marked insecure is the thing to act on, and no version number can tell you that by itself. Run it over your module list on a schedule to get a standing security check.
Search issuesList issues from a project's queue, or across all of drupal.org, most recently changed first. Filter by status, priority and category to watch what needs review on a module you maintain, to find critical bugs before an upgrade, or to feed a triage report.
Get an issueRead one issue from drupal.org by its node id, the number in its URL. Returns the title, status, priority, category, who filed it, who it is assigned to and the opening of the description, so a workflow can post it to chat or open a matching ticket somewhere else.
Get a contributorLook up a drupal.org contributor by username and get their profile: when they joined, where they are, what they say they work on and which organisations they are attached to. Use it to put a name to a maintainer or a patch author.
List what the site exposesThis acts on the Drupal site connected to this integration, so it needs the site URL, and credentials for anything the site does not let anonymous visitors do. List every resource type the connected site publishes over JSON:API, each written entity--bundle. Which types a site has depends entirely on its content model, so run this first against a site you do not already know: every other site action needs one of these names.
List recordsThis acts on the Drupal site connected to this integration, so it needs the site URL, and credentials for anything the site does not let anonymous visitors do. List records of one type from the site: articles, pages, taxonomy terms, users, or anything else its content model has. Filter on a field, sort, and pull in related records in the same call. The attributes come back exactly as the site names them, because a site's fields are its own.
Get a recordThis acts on the Drupal site connected to this integration, so it needs the site URL, and credentials for anything the site does not let anonymous visitors do. Read one record from the site by its UUID, with every field it carries. JSON:API identifies records by UUID rather than by the node id the admin screens show, and every list action returns one per row.
Create a recordThis acts on the Drupal site connected to this integration, so it needs the site URL, and credentials for anything the site does not let anonymous visitors do. Create a record on the site: publish an article, add a taxonomy term, file anything the content model allows. The fields go in as a JSON object named the way the site names them, which 'Get a record' will show you for something that already exists. Creating needs an account with permission to do it.
Update a recordThis acts on the Drupal site connected to this integration, so it needs the site URL, and credentials for anything the site does not let anonymous visitors do. Change fields on a record that already exists. Only the fields given are touched; everything else is left as it was. Use it to publish or unpublish something, correct a title, or retag an article.
Delete a recordThis acts on the Drupal site connected to this integration, so it needs the site URL, and credentials for anything the site does not let anonymous visitors do. Delete a record from the site permanently. Drupal does not put JSON:API deletions in a trash can, so this cannot be undone from here: unpublish it with 'Update a record' instead if you might want it back.
Run a JSON:API requestThis acts on the Drupal site connected to this integration, so it needs the site URL, and credentials for anything the site does not let anonymous visitors do. Call any JSON:API endpoint on the site directly. The escape hatch for the parts of a content model the other actions do not reach: a custom entity type, a filter too involved for the simple field-and-value form, a relationship endpoint, or a revision. The response is shaped the same way whether the endpoint returns one record or many.