Anysphere Cursor Ai · Schema
PullRequest
A pull request.
CompanyAICodingDeveloper-ToolsAutomationPlatform
Properties
| Name | Type | Description |
|---|---|---|
| id | string | Stable Origin pull request identifier. |
| number | string | Pull request number within its repository. |
| state | string | "open" or "closed". A draft is "open"; merged and closed pull requests are both "closed". |
| draft | boolean | Whether the pull request is still a draft. |
| merged | boolean | Whether the pull request has been merged. |
| title | string | Pull request title. |
| body | string | Pull request description. |
| head | object | The source side of the pull request - what is being merged in. |
| base | object | The target side of the pull request — what it merges into. |
| author | object | The principal that opened the pull request. |
| createdAt | string | When the pull request was opened. |
| updatedAt | string | When the pull request was last updated. |
| closedAt | string | When the pull request was closed or merged; unset while open. |
| mergedAt | string | When the pull request was merged; unset unless merged. |
| mergeCommitSha | string | SHA of the commit the merge wrote to the base branch; set once merged, unset before. The pre-merge preview is the `pull/ |
| additions | integer | Lines added by the pull request's latest version. |
| deletions | integer | Lines deleted by the pull request's latest version. |
| changedFiles | integer | Files changed by the pull request's latest version. |
| labels | array | Labels currently assigned to this pull request, sorted by name. Empty when none are assigned. A pull request can have at most 100 labels. |
| stack | object | Stack membership. Unset when the pull request is not part of a stack. |
| version | object | The pull request's latest version. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/anysphere-cursor-ai/main/json-schema/anysphere-cursor-ai-pull-request-schema.json",
"title": "PullRequest",
"description": "A pull request.",
"x-generated": "2026-09-25",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/anysphere-cursor-ai-openapi.yaml#/components/schemas/PullRequest",
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Stable Origin pull request identifier."
},
"number": {
"type": "string",
"description": "Pull request number within its repository."
},
"state": {
"type": "string",
"description": "\"open\" or \"closed\". A draft is \"open\"; merged and closed pull requests are both \"closed\"."
},
"draft": {
"type": "boolean",
"description": "Whether the pull request is still a draft."
},
"merged": {
"type": "boolean",
"description": "Whether the pull request has been merged."
},
"title": {
"type": "string",
"description": "Pull request title."
},
"body": {
"type": "string",
"description": "Pull request description."
},
"head": {
"allOf": [
{
"$ref": "#/$defs/PullRequestRef"
}
],
"description": "The source side of the pull request - what is being merged in."
},
"base": {
"allOf": [
{
"$ref": "#/$defs/PullRequestRef"
}
],
"description": "The target side of the pull request — what it merges into."
},
"author": {
"allOf": [
{
"$ref": "#/$defs/OriginActor"
}
],
"description": "The principal that opened the pull request."
},
"createdAt": {
"type": "string",
"description": "When the pull request was opened.",
"format": "date-time"
},
"updatedAt": {
"type": "string",
"description": "When the pull request was last updated.",
"format": "date-time"
},
"closedAt": {
"type": "string",
"description": "When the pull request was closed or merged; unset while open.",
"format": "date-time"
},
"mergedAt": {
"type": "string",
"description": "When the pull request was merged; unset unless merged.",
"format": "date-time"
},
"mergeCommitSha": {
"type": "string",
"description": "SHA of the commit the merge wrote to the base branch; set once merged,\n unset before. The pre-merge preview is the `pull/<number>/merge` ref\n (see GetGitRef), a different commit."
},
"additions": {
"type": "integer",
"description": "Lines added by the pull request's latest version.",
"format": "int32"
},
"deletions": {
"type": "integer",
"description": "Lines deleted by the pull request's latest version.",
"format": "int32"
},
"changedFiles": {
"type": "integer",
"description": "Files changed by the pull request's latest version.",
"format": "int32"
},
"labels": {
"type": "array",
"items": {
"$ref": "#/$defs/Label"
},
"description": "Labels currently assigned to this pull request, sorted by name. Empty when\n none are assigned. A pull request can have at most 100 labels."
},
"stack": {
"allOf": [
{
"$ref": "#/$defs/PullRequestStackMembership"
}
],
"description": "Stack membership. Unset when the pull request is not part of a stack."
},
"version": {
"allOf": [
{
"$ref": "#/$defs/PullRequestVersion"
}
],
"description": "The pull request's latest version."
}
},
"$defs": {
"Label": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"color": {
"type": "string",
"description": "Six-character hex color without a leading `#`."
},
"description": {
"type": "string"
}
}
},
"OriginActor": {
"type": "object",
"properties": {
"user": {
"$ref": "#/$defs/OriginUserActor"
},
"app": {
"$ref": "#/$defs/OriginAppActor"
},
"serviceAccount": {
"$ref": "#/$defs/OriginServiceAccountActor"
}
},
"description": "A user, app, or service account that performed an externally visible action."
},
"OriginAppActor": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"displayName": {
"type": "string",
"description": "The app's registered display name, never empty when present. Omitted on\n payloads whose app could not be resolved and on the first-party Cursor\n facade actor."
}
}
},
"OriginServiceAccountActor": {
"type": "object",
"properties": {
"id": {
"type": "string"
}
}
},
"OriginUserActor": {
"required": [
"email"
],
"type": "object",
"properties": {
"id": {
"type": "string"
},
"email": {
"type": "string"
},
"displayName": {
"type": "string",
"description": "Human-readable display name: the account's first and last name, each\n trimmed, joined with a space — exactly the name the product UI renders.\n Omitted when the account has no name; never synthesized from the email,\n the id, or any other field. May also be absent on webhook payloads whose\n actor could not be resolved."
},
"handle": {
"type": "string",
"description": "The user's claimed profile handle (the identity behind cursor.com\n /@handle), without the @ prefix. Present only while the user's profile\n is publicly visible; omitted for users without a claimed handle and for\n non-public profiles."
}
}
},
"Owner": {
"type": "object",
"properties": {
"slug": {
"type": "string",
"description": "Unique URL-friendly name of the owner."
},
"id": {
"type": "string",
"description": "Unique ID of the owner namespace."
},
"type": {
"readOnly": true,
"enum": [
"team",
"user"
],
"type": "string",
"description": "`team` or `user`. Output-only; unset when unknown."
}
},
"description": "The owner of a repo."
},
"PullRequestRef": {
"type": "object",
"properties": {
"ref": {
"type": "string",
"description": "The ref this side points at, as Origin records it."
},
"sha": {
"type": "string",
"description": "Tip commit SHA of this side at the change's latest version. For `base`\n this is the version's `base_sha`, which can lag the branch's current tip\n (see `PullRequestVersion`)."
}
},
"description": "One side (head or base) of a change."
},
"PullRequestReference": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Immutable Origin change id."
},
"number": {
"type": "string"
},
"repository": {
"allOf": [
{
"$ref": "#/$defs/RepositoryReference"
}
],
"description": "Repository reference for this pull request."
}
},
"description": "Stable identity and display coordinates for an Origin pull request."
},
"PullRequestStackMembership": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Stable stack identifier. Pass it as `stack_id` to `ListPullRequests` to\n list the stack's members."
},
"parentPullRequest": {
"allOf": [
{
"$ref": "#/$defs/PullRequestReference"
}
],
"description": "The pull request this one is stacked on. Unset for the root of the stack.\n A merged parent stays referenced until the child is retargeted or\n re-parented."
}
},
"description": "Membership of a pull request in a stack: a chain of dependent pull requests\n in one repository, each stacked on the one it builds upon."
},
"PullRequestVersion": {
"type": "object",
"properties": {
"number": {
"type": "string",
"description": "Monotonic version number within the change (1-based)."
},
"headSha": {
"type": "string",
"description": "Head commit SHA for this version."
},
"baseSha": {
"type": "string",
"description": "Base commit SHA this version is diffed against: the base branch tip as\n resolved when the version was recorded. It can lag the branch's current\n tip until the next head push or retarget."
},
"createdAt": {
"type": "string",
"description": "When this version was created.",
"format": "date-time"
}
},
"description": "A numbered revision of a change. A new version is recorded when the pull\n request's head is pushed or when it is retargeted to another base, each\n with its own head/base SHAs and diff stats. The base branch advancing on\n its own records nothing."
},
"RepositoryReference": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"owner": {
"$ref": "#/$defs/Owner"
}
},
"description": "Stable identity and display coordinates for a repository."
}
}
}
Work with this as data
Every JSON Schema 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 schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.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.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/anysphere-cursor-ai-pull-request"
All schemas
curl "https://apis.io/api/v1/json-schemas?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.