iEdison Requests API — v3 Documentation
Base Path: /api/v3
Content Type: multipart/form-data (unless noted)
Response Format: application/json
Overview
The Requests API allows authorized vendors to create, update, withdraw, and search requests related to inventions and patents. All endpoints require an authenticated user session. If the system is under a government shutdown, all endpoints return an outage response automatically.
Every request body is submitted as a multipart form with two parts:
payload— a JSON string containing the request data.attachments(optional) — one or more file attachments.
Authentication & Authorization
All endpoints enforce role-based access control. If the authenticated user is not authorized for the given operation, the API returns a 401 response with:
{
"message": "Access Denied",
"timestamp": "2026-05-29T19:12:44.271897"
}
Endpoints
1. Create Invention Assignment Request
POST /invention/requests/assignment/create
Creates an assignment request for an invention.
Form Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
payload |
String (JSON) | Yes | Request data in JSON format |
attachments |
File(s) | Yes 1 | Supporting documents |
- At least 1 but no more than 5 attachments
Payload Fields
| Field | Type | Required | Description |
|---|---|---|---|
inventionReportNumber |
String | Yes | The invention report number |
assignmentType |
String | Yes 1 | The type of assignment |
institutionCode |
String | Yes | Institution code of organization to transfer to |
inventor |
InventorDTO |
Yes 2 | Name of inventor to transfer to |
comments |
String | Yes 3 | Additional comments |
thirdPartyorinventor- If assignmentType is
inventor, must be name of inventor on invention - Comments can be no more than 512 characters
InventorDTO{ "firstName": "string", "lastName": "string", "middleInitial": "string" }
Responses
| Code | Description |
|---|---|
200 |
Request created successfully. Returns a RequestDTO object. (See Appendix A) |
400 |
Invalid request data. Returns error details. |
500 |
Server error during processing. |
2. Create Invention Transfer Request
POST /invention/requests/transfer/create
Creates a transfer request for an invention.
Form Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
payload |
String (JSON) | Yes | Request data in JSON format |
attachments |
File(s) | No 1 | Supporting documents |
- No more than 5 attachments
Payload Fields
| Field | Type | Required | Description |
|---|---|---|---|
inventionReportNumber |
String | Yes | The invention report number |
institutionCode |
String | Yes | Institution code of organization to transfer to |
comments |
String | Yes 1 | Additional comments |
- Comments can be no more than 512 characters
Responses
| Code | Description |
|---|---|
200 |
Transfer request created successfully. Returns a RequestDTO object. (See Appendix A) |
400 |
Invalid request data. |
500 |
Server error. |
3. Create Invention Election Extension Request
POST /invention/requests/election-extension/create
Creates an election extension request for an invention.
Form Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
payload |
String (JSON) | Yes | Request data in JSON format |
attachments |
File(s) | Yes 1 | Supporting documents |
- At least 1 but no more than 5 attachments
Payload Fields
| Field | Type | Required | Description |
|---|---|---|---|
inventionReportNumber |
String | Yes | The invention report number |
months |
Integer | Yes 1 | Number of extension months requested |
comments |
String | Yes 2 | Additional comments |
- Must be an integer between 1 and 24 inclusive
- Comments can be no more than 512 characters
Responses
| Code | Description |
|---|---|
200 |
Election extension request created successfully. Returns a RequestDTO object. (See Appendix A) |
400 |
Invalid request data. |
500 |
Server error. |
4. Create Invention Non-Provisional Patent Extension Request
POST /invention/requests/non-provisional-patent-extension/create
Creates a non-provisional patent extension request for an invention.
Form Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
payload |
String (JSON) | Yes | Request data in JSON format |
attachments |
File(s) | Yes 1 | Supporting documents |
- At least 1 but no more than 5 attachments
Payload Fields
| Field | Type | Required | Description |
|---|---|---|---|
inventionReportNumber |
String | Yes | The invention report number |
months |
Integer | Yes 1 | Number of extension months requested |
comments |
String | Yes 2 | Additional comments |
- Must be an integer between 1 and 12 inclusive
- Comments can be no more than 512 characters
Responses
| Code | Description |
|---|---|
200 |
Non-provisional patent extension request created successfully. Returns a RequestDTO object. (See Appendix A) |
400 |
Invalid request data. |
500 |
Server error. |
5. Create Invention Initial Patent Extension Request
POST /invention/requests/initial-patent-extension/create
Creates an initial patent extension request for an invention.
Form Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
payload |
String (JSON) | Yes | Request data in JSON format |
attachments |
File(s) | Yes 1 | Supporting documents |
- At least 1 but no more than 5 attachments
Payload Fields
| Field | Type | Required | Description |
|---|---|---|---|
inventionReportNumber |
String | Yes | The invention report number |
months |
Integer | Yes 1 | Number of extension months requested |
comments |
String | Yes 2 | Additional comments |
- Must be an integer between 1 and 12 inclusive
- Comments can be no more than 512 characters
Responses
| Code | Description |
|---|---|
200 |
Initial patent extension request created successfully. Returns a RequestDTO object. (See Appendix A) |
400 |
Invalid request data. |
500 |
Server error. |
6. Create Invention Void Request
POST /invention/requests/void/create
Creates a void request for an invention.
Form Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
payload |
String (JSON) | Yes | Request data in JSON format |
attachments |
File(s) | No 1 | Supporting documents |
- No more than 5 attachments
Payload Fields
| Field | Type | Required | Description |
|---|---|---|---|
inventionReportNumber |
String | Yes | The invention report number |
comments |
String | Yes 1 | Additional comments |
- Comments can be no more than 512 characters
Responses
| Code | Description |
|---|---|
200 |
Void request created successfully. Returns a RequestDTO object. (See Appendix A) |
400 |
Invalid request data. |
500 |
Server error. |
7. Create Patent Assignment Request
POST /patent/requests/assignment/create
Creates an assignment request for a patent.
Form Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
payload |
String (JSON) | Yes | Request data in JSON format |
attachments |
File(s) | Yes 1 | Supporting documents |
- At least 1 but no more than 5 attachments
Payload Fields
| Field | Type | Required | Description |
|---|---|---|---|
inventionReportNumber |
String | Yes | The invention report number |
patentDocketNumber |
String | Yes | The patent docket number |
assignmentType |
String | Yes 1 | The type of assignment |
institutionCode |
String | Yes | Institution code of organization to transfer to |
inventor |
InventorDTO |
Yes 2 | Name of inventor to transfer to |
comments |
String | Yes 3 | Additional comments |
thirdPartyorinventor- If assignmentType is
inventor, must be name of inventor on invention - Comments can be no more than 512 characters
InventorDTO{ "firstName": "string", "lastName": "string", "middleInitial": "string" }
Responses
| Code | Description |
|---|---|
200 |
Patent assignment request created successfully. Returns a RequestDTO object. (See Appendix A) |
400 |
Invalid request data. |
500 |
Server error. |
8. Create Patent Transfer Request
POST /patent/requests/transfer/create
Creates a transfer request for a patent.
Form Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
payload |
String (JSON) | Yes | Request data in JSON format |
attachments |
File(s) | No 1 | Supporting documents |
- No more than 5 attachments
Payload Fields
| Field | Type | Required | Description |
|---|---|---|---|
inventionReportNumber |
String | Yes | The invention report number |
patentDocketNumber |
String | Yes | The patent docket number |
institutionCode |
String | Yes | Institution code of organization to transfer to |
comments |
String | Yes 1 | Additional comments |
- Comments can be no more than 512 characters
Responses
| Code | Description |
|---|---|
200 |
Patent transfer request created successfully. Returns a RequestDTO object. (See Appendix A) |
400 |
Invalid request data. |
500 |
Server error. |
9. Create Patent Void Request
POST /patent/requests/void/create
Creates a void request for a patent.
Form Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
payload |
String (JSON) | Yes | Request data in JSON format |
attachments |
File(s) | No 1 | Supporting documents |
- No more than 5 attachments
Payload Fields
| Field | Type | Required | Description |
|---|---|---|---|
inventionReportNumber |
String | Yes | The invention report number |
patentDocketNumber |
String | Yes | The patent docket number |
comments |
String | Yes 1 | Additional comments |
- Comments can be no more than 512 characters
Responses
| Code | Description |
|---|---|
200 |
Patent void request created successfully. Returns a RequestDTO object. (See Appendix A) |
400 |
Invalid request data. |
500 |
Server error. |
10. Update Request
POST /requests/{requestId}/update
Updates an existing invention or patent request. Can modify comments, add new attachments, or remove existing ones.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
requestId |
Long | Yes | The ID of the request to update |
Form Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
payload |
String (JSON) | No | Update data in JSON format |
attachments |
File(s) | No | New attachments to add |
- No more than 5 attachments
Payload Fields
| Field | Type | Required | Description |
|---|---|---|---|
comments |
String | No 1 | Updated comments for the request |
deleteAttachmentIds |
Long[] | No 2 | IDs of existing attachments to remove |
- Comments can be no more than 512 characters. If present, cannot be empty.
- Total number of attachments after adding and deleting cannot be more than 5. Assignment, Transfer, Election Extension, Non-Provisional Patent Extension, and Initial Patent Extension requests must have at least 1 attachment after adding and deleting.
Responses
| Code | Description |
|---|---|
200 |
Request updated successfully. Returns the updated RequestDTO object. (See Appendix A) |
400 |
Invalid request data or save failure. |
500 |
Server error. |
11. Withdraw Request
POST /requests/{requestId}/withdraw
Withdraws an existing request. A request cannot be withdrawn if it has already been accepted or rejected by an agency.
Consumes: */* (no body required)
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
requestId |
Long | Yes | The ID of the request to withdraw |
Responses
| Code | Description |
|---|---|
200 |
Request withdrawn successfully. Returns the updated RequestDTO. (See Appendix A) |
400 |
Request not found, user not authorized, or request is in a final state. |
500 |
Server error. |
Error Scenarios
| Condition | Error Description |
|---|---|
| Request not found | "Cannot find request for id {requestId}" |
| Unauthorized user | "User Not Authorized to Withdraw Request" |
| Request already finalized | "Could not withdraw request. Request has been accepted or rejected by another agency." |
| Withdraw operation failed | "Could not withdraw request. Please contact the iEdison Help Desk" |
12. Search Requests
POST /requests/search
Searches requests for the authenticated user’s organization based on a set of filter criteria. Results are paginated.
Form Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
payload |
String (JSON) | No | Search filters in JSON format. (See Appendix C) |
Payload Fields
| Field | Type | Required | Description |
|---|---|---|---|
start |
Integer | No 1 | Pagination offset (default: 0) |
limit |
Integer | No 2 | Max results to return (default: 100) |
inventionReportNumber |
String | No | Filter by invention report number |
inventionDocketNumber |
String | No | Filter by invention docket number |
patentDocketNumber |
String | No | Filter by patent docket number |
requestSubmitDateFrom |
Date | No 3 | Filter requests created on or after this date |
requestSubmitDateTo |
Date | No 3 | Filter requests created on or before this date |
inventionRequestTypes |
String[] | No 4 | Filter by invention request type names (see valid values below) |
patentRequestTypes |
String[] | No 5 | Filter by patent request type names (see valid values below) |
requestStatusTypes |
String[] | No 6 | Filter by request status |
primaryAgencyCode |
String | No | Filter by primary agency code |
institutionCode |
String | No | Filter by institution ID (as string) |
titleElectionStatuses |
String[] | No 7, 8 | Filter by title election status (see valid values below) |
taggedAgencyUserEmails |
String[] | No | Filter by tagged agency user emails |
- Default 0
- Default 100
- Date Format
MM/dd/yyyy - Values can be any or all of the following
AssignmentDomestic Manufacture WaiverNon-Provisional Patent ExtensionTransferVoidElection ExtensionInitial Patent Extension
- Values can be any or all of the following
AssignmentTransferVoid
- Values can be any or all of the following
ReviewingVoidedAgreement ReceivedWithdrawnSubmittedDeniedApproved
- Values can be any or all of the following
Elect to Retain TitleDoes Not Retain TitleDesignated as Unpatented Biological Material or Research ToolUnder EvaluationDraftVoidedTransferred/AssignedGovernment Takes Title (Award Terms)
- Agency API users cannot search on
Draftstatus
Response Body
{
"requests": [ /* array of RequestDTO objects */ ],
"start": 0,
"limit": 100,
"maxResults": 250
}
Responses
| Code | Description |
|---|---|
200 |
Search completed. Returns a paginated list of RequestDTO objects. (See Appendix A) |
400 |
Invalid search parameters. |
500 |
Server error. |
Appendix A: Response Object
RequestDTO - A single response object containing all the information about a single request.
{
"id": "long",
"type": "string",
"submitDate": "date",
"months": "int",
"inventor": {
"name": "string",
"email": "string"
},
"targetGrantee": {
"id": "long",
"name": "string",
"duns": "string",
"uei": "string",
"address": "string"
},
"dispositionEntity": "string",
"comments": "string",
"status": "string",
"rejectedDate": "date",
"acceptedDate": "date",
"invention": {
"id": "long",
"reportNumber": "string",
"docketNumber": "string",
"titleElectionStatus": "string",
"primaryAgency": {
"id": "long",
"name": "string",
"code": "string"
},
"institution": {
"id": "long",
"name": "string",
"code": "string"
}
},
"patent": {
"id": "long",
"docketNumber": "string"
},
"documents": [
{
"id": "long",
"originalFileName": "string",
"systemInternalFileName": "string",
"type": "string",
"fileSize": "long"
}
],
"taggedAgencyUserEmail": [
{
"email": "string"
}
]
}
RequestsDTO - A paginated list of RequestDTO objects.
{
"requests": [
{
"id": "long",
"type": "string",
"submitDate": "date",
"months": "int",
"inventor": {
"name": "string",
"email": "string"
},
"targetGrantee": {
"id": "long",
"name": "string",
"duns": "string",
"uei": "string",
"address": "string"
},
"dispositionEntity": "string",
"comments": "string",
"status": "string",
"rejectedDate": "date",
"acceptedDate": "date",
"invention": {
"id": "long",
"reportNumber": "string",
"docketNumber": "string",
"titleElectionStatus": "string",
"primaryAgency": {
"id": "long",
"name": "string",
"code": "string"
},
"institution": {
"id": "long",
"name": "string",
"code": "string"
}
},
"patent": {
"id": "long",
"docketNumber": "string"
},
"documents": [
{
"id": "long",
"originalFileName": "string",
"systemInternalFileName": "string",
"type": "string",
"fileSize": "long"
}
],
"taggedAgencyUserEmail": [
{
"email": "string"
}
]
}
],
"start": "int",
"limit": "int",
"maxResults": "long"
}
Appendix B: Response Object Example
All successful single-request responses return a RequestsDTO with the following structure:
{
"requests": [
{
"id": 15140576,
"type": "Invention (Transfer)",
"submitDate": "06/15/2026",
"targetGrantee": {
"id": 7654321,
"name": "DAN'S INSTITUTION",
"duns": "123456789",
"address": "Your Institution's Contact Information PO Box 987602-1234 Another address line, Bethesda, MARYLAND, 20892"
},
"comments": "Test",
"status": "SUBMITTED",
"invention": {
"id": 424966,
"reportNumber": "0820102-21-0112",
"docketNumber": "21-0112",
"titleElectionStatus": "Under Evaluation",
"primaryAgency": {
"id": 1149,
"name": "National Institute of Standards and Technology",
"code": "NIST"
},
"institution": {
"id": 820102,
"name": "UNIV OF MARYLAND, COLLEGE PARK",
"code": "820102"
}
},
"documents": [
{
"id": 739313375,
"originalFileName": "SAMPLE ATTACHMENT5.pdf",
"systemInternalFileName": "SAMPLE ATTACHMENT50820102-21-0112.pdf",
"type": "application/pdf"
}
]
},
{
"id": 15140575,
"type": "Invention (Assignment)",
"submitDate": "06/15/2026",
"inventor": {
"name": "John Q Stewart"
},
"targetGrantee": {
"id": 7654321,
"name": "DAN'S INSTITUTION",
"duns": "123456789",
"address": "Your Institution's Contact Information PO Box 987602-1234 Another address line, Bethesda, MARYLAND, 20892"
},
"dispositionEntity": "INVENTOR(S)",
"comments": "Test",
"status": "WITHDRAWN",
"invention": {
"id": 424966,
"reportNumber": "0820102-21-0112",
"docketNumber": "21-0112",
"titleElectionStatus": "Under Evaluation",
"primaryAgency": {
"id": 1149,
"name": "National Institute of Standards and Technology",
"code": "NIST"
},
"institution": {
"id": 820102,
"name": "UNIV OF MARYLAND, COLLEGE PARK",
"code": "820102"
}
},
"documents": [
{
"id": 739313374,
"originalFileName": "SAMPLE ATTACHMENT6.pdf",
"systemInternalFileName": "SAMPLE ATTACHMENT60820102-21-0112.pdf",
"type": "application/pdf"
}
]
},
{
"id": 15140574,
"type": "Invention (Assignment)",
"submitDate": "06/15/2026",
"targetGrantee": {
"id": 7654321,
"name": "DAN'S INSTITUTION",
"duns": "123456789",
"address": "Your Institution's Contact Information PO Box 987602-1234 Another address line, Bethesda, MARYLAND, 20892"
},
"dispositionEntity": "THIRD PARTY",
"comments": "Assigning to third party",
"status": "WITHDRAWN",
"invention": {
"id": 424966,
"reportNumber": "0820102-21-0112",
"docketNumber": "21-0112",
"titleElectionStatus": "Under Evaluation",
"primaryAgency": {
"id": 1149,
"name": "National Institute of Standards and Technology",
"code": "NIST"
},
"institution": {
"id": 820102,
"name": "UNIV OF MARYLAND, COLLEGE PARK",
"code": "820102"
}
},
"documents": [
{
"id": 739313373,
"originalFileName": "SAMPLE ATTACHMENT.pdf",
"systemInternalFileName": "SAMPLE ATTACHMENT0820102-21-0112.pdf",
"type": "application/pdf"
}
]
},
{
"id": 15140569,
"type": "Invention (Assignment)",
"submitDate": "06/15/2026",
"inventor": {
"name": "John Doe 2"
},
"targetGrantee": {
"id": 685806,
"name": "IBM THOMAS J. WATSON RESEARCH CENTER",
"duns": "084006741",
"address": "1101 Kitchawan Rd Route 134, YORKTOWN HEIGHTS, NEW YORK, 10598"
},
"dispositionEntity": "INVENTOR(S)",
"comments": "This is a comment",
"status": "SUBMITTED",
"invention": {
"id": 423199,
"reportNumber": "0820102-26-0039",
"docketNumber": "26-0039",
"titleElectionStatus": "Under Evaluation",
"primaryAgency": {
"id": 1082,
"name": "U.S. Department of Energy",
"code": "DOE"
},
"institution": {
"id": 820102,
"name": "UNIV OF MARYLAND, COLLEGE PARK",
"code": "820102"
}
},
"documents": [
{
"id": 739313292,
"originalFileName": "dummy4.pdf",
"systemInternalFileName": "dummy40820102-26-0039.pdf",
"type": "application/pdf"
}
]
},
{
"id": 15140568,
"type": "Invention (Assignment)",
"submitDate": "06/15/2026",
"inventor": {
"name": "John Doe"
},
"targetGrantee": {
"id": 685806,
"name": "IBM THOMAS J. WATSON RESEARCH CENTER",
"duns": "084006741",
"address": "1101 Kitchawan Rd Route 134, YORKTOWN HEIGHTS, NEW YORK, 10598"
},
"dispositionEntity": "INVENTOR(S)",
"comments": "This is a comment",
"status": "WITHDRAWN",
"invention": {
"id": 423199,
"reportNumber": "0820102-26-0039",
"docketNumber": "26-0039",
"titleElectionStatus": "Under Evaluation",
"primaryAgency": {
"id": 1082,
"name": "U.S. Department of Energy",
"code": "DOE"
},
"institution": {
"id": 820102,
"name": "UNIV OF MARYLAND, COLLEGE PARK",
"code": "820102"
}
},
"documents": [
{
"id": 739313291,
"originalFileName": "dummy2.pdf",
"systemInternalFileName": "dummy20820102-26-0039.pdf",
"type": "application/pdf"
}
]
},
{
"id": 15140567,
"type": "Invention (Election Extension)",
"submitDate": "06/14/2026",
"months": 2,
"comments": "Election Extension",
"status": "WITHDRAWN",
"invention": {
"id": 395778,
"reportNumber": "0820102-23-0011",
"docketNumber": "23-0011",
"titleElectionStatus": "Under Evaluation",
"primaryAgency": {
"id": 1149,
"name": "National Institute of Standards and Technology",
"code": "NIST"
},
"institution": {
"id": 820102,
"name": "UNIV OF MARYLAND, COLLEGE PARK",
"code": "820102"
}
}
},
{
"id": 15140566,
"type": "Invention (Void)",
"submitDate": "06/14/2026",
"comments": "Void",
"status": "APPROVED",
"acceptedDate": "06/14/2026",
"invention": {
"id": 418532,
"reportNumber": "0820102-26-0007",
"docketNumber": "26-0007",
"titleElectionStatus": "Under Evaluation",
"primaryAgency": {
"id": 1082,
"name": "U.S. Department of Energy",
"code": "DOE"
},
"institution": {
"id": 820102,
"name": "UNIV OF MARYLAND, COLLEGE PARK",
"code": "820102"
}
}
}
],
"start": 0,
"limit": 100,
"maxResults": 7
}
Appendix C: Search Request definition and example.
SearchRequestDTO - A request object containing all the information needed to search for requests.
{
"inventionReportNumber": "string",
"inventionDocketNumber": "string",
"requestSubmitDateFrom": "date",
"requestSubmitDateTo": "date",
"inventionRequestTypes": ["string"],
"patentRequestTypes": ["string"],
"requestStatusTypes": ["string"],
"primaryAgencyCode": "string",
"institutionCode": "string",
"titleElectionStatuses": ["string"],
"patentDocketNumber": "string",
"taggedAgencyUserEmails": "string",
"start": "int",
"limit": "int"
}
SearchRequestDTO - An example of a search request.
{
"requestSubmitDateFrom": "06/15/2026"
}