Query structured spec data via REST or MCP. Get exactly what your agent needs.
https://techport.nasa.gov
/api/organizations
Returns a list of organizations that match a given name.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| name | query | optional | string | Organization Name to filter on. |
GET /api/organizations
/api/organizations/types
Returns a list of available organization types, including set-aside and MSI types.
GET /api/organizations/types
/api/organizations/{organizationId}
Get an organization and its information.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| organizationId | path | required | integer | Organization Id. |
GET /api/organizations/{organizationId}
/api/projects
Returns a list of available technology project IDs.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| updatedSince | query | required | string | ISO 8601 full-date in the format YYYY-MM-DD. Filters the list of available ID values by their lastUpdated parameter. |
GET /api/projects
/api/projects/search
Returns a list of projects matching the search term.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| projectId | query | optional | integer | The specific ID of the project requested. |
| searchQuery | query | optional | string | The term on which to search. Will check all project fields for the this term. |
| missionDirectorate | query | optional | string | The mission directorate acronym of the projects. Used to filter. |
| program | query | optional | string | The program acronym of the projects. Used to filter. |
| titleSearch | query | optional | string | The term on which to search. Will check only project titles for the this term. |
GET /api/projects/search
/api/projects/{projectId}
Returns information about a specific technology project.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| projectId | path | required | integer | ID of project to fetch |
GET /api/projects/{projectId}
/api
Returns the swagger specification for the API.
GET /api
OrganizationGetInformationResponse
{
"type": "object",
"properties": {
"organization": {
"$ref": "#/components/schemas/organization"
}
}
}
OrganizationGetListByNameResponse
{
"type": "object",
"properties": {
"organizations": {
"type": "array",
"items": {
"$ref": "#/components/schemas/organization"
}
}
}
}
OrganizationListTypesResponse
{
"type": "object",
"properties": {
"organizations": {
"type": "array",
"items": {
"$ref": "#/components/schemas/organizationType"
}
}
}
}
ProjectFindMatchingProjectsResponse
{
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"title": {
"type": "string"
},
"description": {
"type": "string"
}
}
},
"description": "List of projects that match the criteria."
}
ProjectListAvailableIdsResponse
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"lastUpdated": {
"type": "string"
}
}
}
closeoutDocument
{
"type": "string",
"description": "Represents a file hyperlink or external hyperlink to a project closeout final report artifact."
}
coInvestigator
{
"type": "string",
"description": "The name of an investigator who is a scientist or engineer for an project."
}
contact
{
"type": "object",
"properties": {
"fax": {
"type": "string",
"description": "Fax number for the contact"
},
"title": {
"type": "string",
"description": "Title for the contact"
},
"prefix": {
"type": "string",
"description": "Prefix for the contact"
},
"suffix": {
"type": "string",
"description": "Suffix for the contact"
},
"fullName": {
"type": "string",
"description": "Full name for the contact, first middle initial last"
},
"lastName": {
"type": "string",
"description": "Last name for the contact"
},
"location": {
"$ref": "#/components/schemas/location",
"description": "Location for the contact"
},
"contactId": {
"type": "integer",
"format": "int64",
"description": "Unique ID for this contact"
},
"firstName": {
"type": "string",
"description": "First name for the contact"
},
"workPhone": {
"type": "string",
"description": "Phone number for the contact"
},
"locationId": {
"type": "integer",
"format": "int64",
"description": "Unique ID representing the contacts location"
},
"displayOrder": {
"type": "integer",
"format": "int64",
"description": "Display order"
},
"organization": {
"$ref": "#/components/schemas/organization",
"description": "Organization that the contact works for"
},
"primaryEmail": {
"type": "string",
"description": "Primary email for the contact"
},
"receiveEmail": {
"type": "integer",
"format": "int64",
"description": "1 if the contact is signed up to receive TechPort emails"
},
"isPublicEmail": {
"type": "boolean",
"description": "True if the contacts email is available to be shown to the public"
},
"middleInitial": {
"type": "string",
"description": "Middle initial for the contact"
},
"secondaryEmail": {
"type": "string",
"description": "Secondary email for the contact"
},
"fullNameInverted": {
"type": "string",
"description": "Full name for the contact but inverted, last first middle initial"
},
"workPhoneExtension": {
"type": "string",
"description": "Extension for contacts work phone number"
}
},
"description": "Represents an individual and their details."
}
destination
{
"type": "string",
"description": "Represents a destination towards which the technology on this project helps advance the Agency goals."
}
file
{
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "The TechPort URL at which the file is accessible for download."
},
"fileId": {
"type": "integer",
"format": "int64",
"description": "Unique identifier for the file."
},
"fileName": {
"type": "string",
"description": "The file name."
},
"fileSize": {
"type": "integer",
"format": "int64",
"description": "The size of the file in bytes."
},
"fileExtension": {
"type": "string",
"description": "The file extension for the file."
}
},
"description": "Represents a file associated with a library item."
}
libraryItem
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int64",
"description": "Unique identifier for the library item."
},
"url": {
"type": "string",
"description": "External URL for the library item."
},
"files": {
"type": "array",
"items": {
"$ref": "#/components/schemas/file"
},
"description": "List of files associated with the library item."
},
"title": {
"type": "string",
"description": "Title of the library item"
},
"contentType": {
"$ref": "#/components/schemas/lkuCode",
"type": "object",
"description": "Identifies the type of library item, e.g. Image"
},
"description": {
"type": "string",
"description": "Description of the library item."
},
"publishedBy": {
"type": "string",
"description": "Publisher of the library item."
},
"publishedDateString": {
"type": "string",
"description": "Date the library item was published."
}
},
"description": "Represents a specific library item."
}
lkuCode
{
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Unique text code that represents this LKU Code"
},
"lkuCodeId": {
"type": "integer",
"format": "int64",
"description": "Unique ID for this LKU Code"
},
"description": {
"type": "string",
"description": "Description of the LKU Code"
},
"lkuCodeType": {
"$ref": "#/components/schemas/lkuCodeType",
"description": "Lookup code type representing this LKU code, further classifying it into a group indicating how the code will be used"
},
"displayOrder": {
"type": "integer",
"format": "int64",
"description": "Display order"
},
"lkuCodeTypeId": {
"type": "integer",
"format": "int64",
"description": "Unique ID for the LKU Code Type"
}
},
"description": "Lookup code representing more data about an object usually stored in our database."
}
lkuCodeType
{
"type": "object",
"properties": {
"codeType": {
"type": "string",
"description": "Unique text code type that represents this LKU Code"
},
"description": {
"type": "string",
"description": "Description of the LKU Code Type"
},
"lkuCodeTypeId": {
"type": "integer",
"format": "int64",
"description": "Unique ID for this LKU Code Type"
}
},
"description": "Lookup code type further showing how the lookup codes within this type will be used."
}
location
{
"type": "object",
"properties": {
"zip": {
"type": "string",
"description": "ZIP code for location"
},
"city": {
"type": "string",
"description": "City for location"
},
"zip2": {
"type": "string",
"description": "Secondary ZIP code for location"
},
"state": {
"type": "string",
"description": "State for location"
},
"country": {
"$ref": "#/components/schemas/lkuCode",
"description": "Lookup code representing the location country"
},
"countryId": {
"type": "integer",
"format": "int64",
"description": "Unique ID for the lookup code representing the location country"
},
"NALocation": {
"type": "string",
"description": "True if this location is located in North America"
},
"locationId": {
"type": "integer",
"format": "int64",
"description": "Unique ID for this location"
},
"addressLine1": {
"type": "string",
"description": "First line of address for location"
},
"addressLine2": {
"type": "string",
"description": "Second line of address for location"
},
"locationType": {
"$ref": "#/components/schemas/lkuCode",
"description": "Lookup code representing the location type"
},
"locationTypeId": {
"type": "integer",
"format": "int64",
"description": "Unique ID for the lookup code representing the location type"
},
"stateTerritoryName": {
"type": "string",
"description": "State Territory name for location"
},
"shortLocationString": {
"type": "string",
"description": "A string representing the full location"
}
},
"description": "Represents a physical location."
}
organization
{
"type": "object",
"properties": {
"ein": {
"type": "string",
"description": "The employer identification number (EIN) of the entity."
},
"fax": {
"type": "string",
"description": "Fax number of the organization"
},
"uei": {
"type": "string",
"description": "The unique entity identifier (UEI) of the entity."
},
"url": {
"type": "string",
"description": "The URL for the organization"
},
"phone": {
"type": "string",
"description": "The phone number for the organization"
},
"acronym": {
"type": "string",
"description": "The acronym of the organization"
},
"msiData": {
"type": "object",
"description": "A key/value pair of strings describing the organization MSI status by fiscal year.",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
},
"description": "The organization MSI status types for a given fiscal year."
}
},
"external": {
"type": "boolean",
"description": "True if the organization is external to NASA"
},
"isActive": {
"type": "boolean",
"description": "True if the organization is an active organization"
},
"location": {
"$ref": "#/components/schemas/location",
"description": "Location object for the organization"
},
"linkCount": {
"type": "integer",
"format": "int64",
"description": "Amount of links this organization has"
},
"dunsNumber": {
"type": "string",
"description": "The DUNS number assigned to the organization."
},
"locationId": {
"type": "integer",
"format": "int64",
"description": "Unique ID representing the organizations location"
},
"murepUnitId": {
"type": "integer",
"format": "int64",
"description": "Unique identifier assigned to U.S. academic institutions by MUREP."
},
"setAsideData": {
"type": "array",
"items": {
"type": "string"
},
"description": "The organization set-aside types."
},
"NAOrganization": {
"type": "boolean",
"description": "True if the organization is in North America"
},
"organizationId": {
"type": "integer",
"format": "int64",
"description": "Unique ID for this organization"
},
"organizationName": {
"type": "string",
"description": "The name of the organization"
},
"organizationType": {
"$ref": "#/components/schemas/lkuCode",
"description": "Lookup code representing the type of organization"
},
"organizationTypeId": {
"type": "integer",
"format": "int64",
"description": "Unique ID for the lookup code representing the organization type"
},
"parentOrganizationId": {
"type": "integer",
"format": "int64",
"description": "Unique ID for the parent organization"
},
"replacementOrganizationId": {
"type": "integer",
"format": "int64",
"description": "Unique ID for the replacement organization"
}
},
"description": "A NASA center/facility associated with an project"
}
organizationType
{
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the organization type."
},
"level": {
"type": "string",
"description": "The relative level of the organization type in the heirarchy."
},
"parentId": {
"type": "integer",
"format": "int64",
"description": "Unique ID for the parent type in the heriarchy."
},
"hasChildren": {
"type": "boolean",
"description": "Whether or not the type has child types."
},
"organizationTypeId": {
"type": "integer",
"format": "int64",
"description": "Unique ID for this organization type."
}
},
"description": "A heirarchical representation of an organization type. Similar to the LkuCode type returned for organization.organizationType, but formatted in a parent/child relationship."
}
principalInvestigator
{
"type": "string",
"description": "The name of the Principal Investigator who is a lead scientist or engineer for an project."
}
program
{
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "Title for the program"
},
"active": {
"type": "boolean",
"description": "True if the program is still active"
},
"acronym": {
"type": "string",
"description": "Acronym for this program"
},
"programId": {
"type": "integer",
"format": "int64",
"description": "Unique ID for this program"
},
"description": {
"type": "string",
"description": "Description for the program"
},
"parentProgram": {
"$ref": "#/components/schemas/program",
"description": "Program object representing the parent program"
},
"responsibleMd": {
"$ref": "#/components/schemas/organization",
"description": "Responsible Mission Directorate for this program"
},
"parentProgramId": {
"type": "integer",
"format": "int64",
"description": "Unique ID for the parent program"
},
"responsibleMdId": {
"type": "integer",
"format": "int64",
"description": "Unique ID for the parent responsible mission directorate"
}
},
"description": "Represents a NASA program."
}
programDirector
{
"type": "string",
"description": "The name of a Program Director responsible for management of an project."
}
programManager
{
"type": "string",
"description": "The name of a Program Manager responsible for management of an project."
}
project
{
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "Title of the project."
},
"endTrl": {
"type": "integer",
"format": "int64",
"description": "The estimated technology maturity (technology readiness level) of the project at its end."
},
"acronym": {
"type": "string",
"description": "Abbreviated name of the project."
},
"program": {
"$ref": "#/components/schemas/program",
"type": "object",
"description": "The NASA program that is the primary funding source for this project."
},
"stiDaas": {
"type": "array",
"items": {
"$ref": "#/components/schemas/libraryItem"
},
"description": "List of STI DAAs in the project library."
},
"website": {
"type": "string",
"description": "The URL for the associated website."
},
"benefits": {
"type": "string",
"description": "Describes the benefits offered to NASA funded and planned missions, unfunded or planned missions, commercial space industry, and to the nation."
},
"startTrl": {
"type": "integer",
"format": "int64",
"description": "The technology maturity (technology readiness level) of the project at its beginning."
},
"projectId": {
"type": "integer",
"format": "int64",
"description": "Unique identifier for the project."
},
"viewCount": {
"type": "integer",
"format": "int64",
"description": "The number of views for the project."
},
"currentTrl": {
"type": "integer",
"format": "int64",
"description": "The current technology maturity (technology readiness level) of the project."
},
"description": {
"type": "string",
"description": "A detailed description of the project."
},
"lastUpdated": {
"type": "string",
"format": "date",
"description": "ISO 8601 full-date in the format YYYY-MM-DD describing the last time this project was updated."
},
"destinations": {
"type": "array",
"items": {
"$ref": "#/components/schemas/lkuCode"
},
"description": "List of the NASA destinations the technology on this project helps achieve."
},
"libraryItems": {
"type": "array",
"items": {
"$ref": "#/components/schemas/libraryItem"
},
"description": "List of library items in the project library."
},
"primaryImage": {
"$ref": "#/components/schemas/libraryItem",
"type": "object",
"description": "Primary Image for the project."
},
"endDateString": {
"type": "string",
"description": "The month and year the project is expected to complete its work."
},
"responsibleMd": {
"$ref": "#/components/schemas/program",
"type": "object",
"description": "The NASA Mission Directorate or Office that is the primary funding source for this project."
},
"statesWithWork": {
"type": "array",
"items": {
"$ref": "#/components/schemas/location"
},
"description": "States and territories with people performing work on this project."
},
"closeoutSummary": {
"type": "string",
"description": "The project closeout summary excerpt."
},
"coInvestigators": {
"type": "array",
"items": {
"$ref": "#/components/schemas/contact"
},
"description": "Names of the additional investigators who are scientists or engineers for this project."
},
"programManagers": {
"type": "array",
"items": {
"$ref": "#/components/schemas/contact"
},
"description": "Names of the Program Managers responsible for the management of this project."
},
"projectManagers": {
"type": "array",
"items": {
"$ref": "#/components/schemas/contact"
},
"description": "Names of the Project Managers responsible for the management of this project."
},
"startDateString": {
"type": "string",
"description": "The month and year the project was authorized to proceed."
},
"leadOrganization": {
"$ref": "#/components/schemas/organization",
"type": "object",
"description": "The lead NASA Center / Facility or external organization that is conducting the majority of the work."
},
"programDirectors": {
"type": "array",
"items": {
"$ref": "#/components/schemas/contact"
},
"description": "Names of the Program Directors responsible for the management of this project."
},
"closeoutDocuments": {
"type": "array",
"items": {
"$ref": "#/components/schemas/libraryItem"
},
"description": "List of document files or links to the project final report closeout documentation."
},
"coFundingPartners": {
"type": "array",
"items": {
"$ref": "#/components/schemas/organization"
},
"description": "Other government agencies, NASA Mission Directoratres, universities, or commercial entities performing contributing resources to this project."
},
"statusDescription": {
"type": "string",
"description": "Indicates whether the project is currently active, completed, or canceled."
},
"primaryTaxonomyNodes": {
"type": "array",
"items": {
"$ref": "#/components/schemas/taxonomyNode"
},
"description": "List of primary taxonomy nodes (from the NASA Technology Roadmap) associated with the project."
},
"principalInvestigators": {
"type": "array",
"items": {
"$ref": "#/components/schemas/contact"
},
"description": "Names of the Principal Investigators who are the lead scientists or engineers for this project."
},
"additionalTaxonomyNodes": {
"type": "array",
"items": {
"$ref": "#/components/schemas/taxonomyNode"
},
"description": "List of additional and cross-cutting taxonomy nodes associated with the project."
},
"supportingOrganizations": {
"type": "array",
"items": {
"$ref": "#/components/schemas/organization"
},
"description": "The supporting organizations for this project that are conducting work on the project."
}
},
"description": "Top-level TechPort object representing a NASA technology project and its associated data."
}
projectManager
{
"type": "string",
"description": "The name of a Project Manager responsible for management of an project."
}
taxonomy
{
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "Title for this taxonomy"
},
"children": {
"type": "array",
"items": {
"$ref": "#/components/schemas/treeNode"
}
},
"definition": {
"type": "string",
"description": "Definition for this taxonomy"
},
"modifiedBy": {
"type": "string",
"description": "The last user to modify this taxonomy"
},
"modifiedDate": {
"type": "string",
"format": "date",
"description": "The date this taxonomy was last modified"
},
"releaseStatus": {
"type": "string",
"description": "The release status of this taxonomy"
},
"taxonomyRootId": {
"type": "integer",
"format": "int64",
"description": "Unique ID for this taxonomy"
},
"releaseStatusId": {
"type": "integer",
"format": "int64",
"description": "ID for this taxonomy roots release status"
}
},
"description": "Represents data associated with a single taxonomy root entity."
}
taxonomyNode
{
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Code of the taxonomy node"
},
"level": {
"type": "integer",
"format": "int64",
"description": "The level of this node on the tree (0 being the root)"
},
"title": {
"type": "string",
"description": "Title of the taxonomy node"
},
"definition": {
"type": "string",
"description": "Definition of the taxonomy node"
},
"hasChildren": {
"type": "boolean",
"description": "Defines whether this node has children"
},
"parentNodeId": {
"type": "integer",
"format": "int64",
"description": "Unique identifier for the taxonomy node/root that is the direct parent of this taxonomy node"
},
"publishedUrl": {
"type": "string",
"description": "Published URL of the taxonomy node"
},
"taxonomyNodeId": {
"type": "integer",
"format": "int64",
"description": "Unique identifier for the taxonomy node"
},
"taxonomyRootId": {
"type": "integer",
"format": "int64",
"description": "Unique identifier for the root of this taxonomy node"
}
},
"description": "Represents data associated with a single taxonomy node entity."
}
technologyArea
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int64",
"description": "Unique identifier for the Technology Area."
},
"code": {
"type": "string",
"description": "The code identifier for the Technology Area."
},
"title": {
"type": "string",
"description": "The title of the Technology Area."
}
},
"description": "The Technology Area for a given technology that corresponds to the NASA Technology Roadmap."
}
treeNode
{
"type": "object",
"properties": {
"content": {
"$ref": "#/components/schemas/taxonomyNode"
},
"children": {
"type": "array",
"items": {
"$ref": "#/components/schemas/treeNode"
}
}
},
"description": "Represents a taxonomy node in a tree."
}
workLocation
{
"type": "string",
"description": "A state/territory where work on this project is performed."
}