{"openapi":"3.1.0","info":{"title":"GrantAtlas Staging API","version":"0.1.0","description":"Read-only staging API for nonprofit organizations, Form 990 filings, and grants."},"servers":[{"url":"https://5qlkc2dh07.execute-api.us-east-2.amazonaws.com","description":"Staging"}],"paths":{"/openapi.json":{"get":{"summary":"OpenAPI document","responses":{"200":{"description":"Successful JSON response","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/health":{"get":{"summary":"Health check","responses":{"200":{"description":"Successful JSON response","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/orgs":{"get":{"summary":"Search organizations","security":[{"apiKeyAuth":[]}],"parameters":[{"name":"q","in":"query","schema":{"type":"string"}},{"name":"state","in":"query","schema":{"type":"string","minLength":2,"maxLength":2},"example":"NY"},{"name":"ntee","in":"query","schema":{"type":"string"},"example":"B"},{"name":"type","in":"query","schema":{"type":"string","enum":["PC","PF","N-filer"]}},{"name":"revenue_min","in":"query","schema":{"type":"number"}},{"name":"assets_min","in":"query","schema":{"type":"number"}},{"name":"sort","in":"query","schema":{"type":"string","enum":["name","revenue","assets","grants_given","grants_received"]}},{"name":"cursor","in":"query","schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}}],"responses":{"200":{"description":"Successful JSON response","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"422":{"$ref":"#/components/responses/InvalidParameter"}}}},"/v1/orgs/{ein}":{"get":{"summary":"Get an organization profile","security":[{"apiKeyAuth":[]}],"parameters":[{"name":"ein","in":"path","required":true,"schema":{"type":"string","pattern":"^\\d{2}-?\\d{7}$"},"example":"770165029"}],"responses":{"200":{"description":"Successful JSON response","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"422":{"$ref":"#/components/responses/InvalidParameter"}}}},"/v1/orgs/{ein}/financials":{"get":{"summary":"Get latest authoritative financial filings","security":[{"apiKeyAuth":[]}],"parameters":[{"name":"ein","in":"path","required":true,"schema":{"type":"string","pattern":"^\\d{2}-?\\d{7}$"},"example":"770165029"},{"name":"from","in":"query","schema":{"type":"integer","minimum":1900,"maximum":2100}},{"name":"to","in":"query","schema":{"type":"integer","minimum":1900,"maximum":2100}}],"responses":{"200":{"description":"Successful JSON response","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"422":{"$ref":"#/components/responses/InvalidParameter"}}}},"/v1/orgs/{ein}/financials/{year}":{"get":{"summary":"Get one financial filing","security":[{"apiKeyAuth":[]}],"parameters":[{"name":"ein","in":"path","required":true,"schema":{"type":"string","pattern":"^\\d{2}-?\\d{7}$"},"example":"770165029"},{"name":"year","in":"path","required":true,"schema":{"type":"integer","minimum":1900,"maximum":2100}}],"responses":{"200":{"description":"Successful JSON response","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"422":{"$ref":"#/components/responses/InvalidParameter"}}}},"/v1/orgs/{ein}/filings":{"get":{"summary":"List filings for an organization","security":[{"apiKeyAuth":[]}],"parameters":[{"name":"ein","in":"path","required":true,"schema":{"type":"string","pattern":"^\\d{2}-?\\d{7}$"},"example":"770165029"},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}}],"responses":{"200":{"description":"Successful JSON response","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"422":{"$ref":"#/components/responses/InvalidParameter"}}}},"/v1/orgs/{ein}/grants-made":{"get":{"summary":"List grants made by an organization","security":[{"apiKeyAuth":[]}],"parameters":[{"name":"ein","in":"path","required":true,"schema":{"type":"string","pattern":"^\\d{2}-?\\d{7}$"},"example":"770165029"},{"name":"year","in":"query","schema":{"type":"integer"}},{"name":"min_amount","in":"query","schema":{"type":"number"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}}],"responses":{"200":{"description":"Successful JSON response","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"422":{"$ref":"#/components/responses/InvalidParameter"}}}},"/v1/orgs/{ein}/grants-received":{"get":{"summary":"List grants received by an organization","security":[{"apiKeyAuth":[]}],"parameters":[{"name":"ein","in":"path","required":true,"schema":{"type":"string","pattern":"^\\d{2}-?\\d{7}$"},"example":"770165029"},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}}],"responses":{"200":{"description":"Successful JSON response","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"422":{"$ref":"#/components/responses/InvalidParameter"}}}},"/v1/filings":{"get":{"summary":"Search filing metadata","security":[{"apiKeyAuth":[]}],"parameters":[{"name":"ein","in":"query","schema":{"type":"string","pattern":"^\\d{2}-?\\d{7}$"}},{"name":"tax_year","in":"query","schema":{"type":"integer"}},{"name":"form_type","in":"query","schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}}],"responses":{"200":{"description":"Successful JSON response","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"422":{"$ref":"#/components/responses/InvalidParameter"}}}},"/v1/grants":{"get":{"summary":"Search grants","security":[{"apiKeyAuth":[]}],"parameters":[{"name":"q","in":"query","schema":{"type":"string"},"description":"Searches grantor, recipient, and purpose text."},{"name":"purpose_contains","in":"query","schema":{"type":"string"}},{"name":"grantor_ein","in":"query","schema":{"type":"string","pattern":"^\\d{2}-?\\d{7}$"}},{"name":"grantor_name","in":"query","schema":{"type":"string"},"description":"Case-insensitive grantor-name match."},{"name":"grantor_state","in":"query","schema":{"type":"string","minLength":2,"maxLength":2}},{"name":"grantor_ntee","in":"query","schema":{"type":"string"},"description":"Grantor NTEE code or prefix."},{"name":"recipient_ein","in":"query","schema":{"type":"string","pattern":"^\\d{2}-?\\d{7}$"}},{"name":"recipient_name","in":"query","schema":{"type":"string"},"description":"Case-insensitive raw or linked recipient-name match."},{"name":"recipient_state","in":"query","schema":{"type":"string","minLength":2,"maxLength":2}},{"name":"recipient_country","in":"query","schema":{"type":"string"}},{"name":"recipient_ntee","in":"query","schema":{"type":"string"},"description":"Matched recipient NTEE code or prefix."},{"name":"recipient_type","in":"query","schema":{"type":"string"}},{"name":"category","in":"query","schema":{"type":"string"}},{"name":"payment_status","in":"query","schema":{"type":"string"}},{"name":"matched","in":"query","schema":{"type":"string","enum":["0","1"]},"description":"Select unmatched or EIN-matched recipients."},{"name":"min_match_confidence","in":"query","schema":{"type":"number","minimum":0,"maximum":1}},{"name":"min_amount","in":"query","schema":{"type":"number"}},{"name":"max_amount","in":"query","schema":{"type":"number"}},{"name":"year","in":"query","schema":{"type":"integer"}},{"name":"sort","in":"query","schema":{"type":"string","enum":["newest","amount","year","recipient","grantor"]}},{"name":"cursor","in":"query","schema":{"type":"string"},"description":"Opaque next_cursor value from the previous collection response."},{"name":"include_total","in":"query","schema":{"type":"string","enum":["1"]},"description":"Adds exact total_results and total_pages metadata."},{"name":"format","in":"query","schema":{"type":"string","enum":["csv"]},"description":"Exports the current filtered page as CSV."},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}}],"responses":{"200":{"description":"Successful JSON response","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"422":{"$ref":"#/components/responses/InvalidParameter"}}}},"/v1/grants/summary":{"get":{"summary":"Grant totals and optional facets","security":[{"apiKeyAuth":[]}],"parameters":[{"name":"q","in":"query","schema":{"type":"string"},"description":"Searches grantor, recipient, and purpose text."},{"name":"purpose_contains","in":"query","schema":{"type":"string"}},{"name":"grantor_ein","in":"query","schema":{"type":"string","pattern":"^\\d{2}-?\\d{7}$"}},{"name":"grantor_name","in":"query","schema":{"type":"string"},"description":"Case-insensitive grantor-name match."},{"name":"grantor_state","in":"query","schema":{"type":"string","minLength":2,"maxLength":2}},{"name":"grantor_ntee","in":"query","schema":{"type":"string"},"description":"Grantor NTEE code or prefix."},{"name":"recipient_ein","in":"query","schema":{"type":"string","pattern":"^\\d{2}-?\\d{7}$"}},{"name":"recipient_name","in":"query","schema":{"type":"string"},"description":"Case-insensitive raw or linked recipient-name match."},{"name":"recipient_state","in":"query","schema":{"type":"string","minLength":2,"maxLength":2}},{"name":"recipient_country","in":"query","schema":{"type":"string"}},{"name":"recipient_ntee","in":"query","schema":{"type":"string"},"description":"Matched recipient NTEE code or prefix."},{"name":"recipient_type","in":"query","schema":{"type":"string"}},{"name":"category","in":"query","schema":{"type":"string"}},{"name":"payment_status","in":"query","schema":{"type":"string"}},{"name":"matched","in":"query","schema":{"type":"string","enum":["0","1"]},"description":"Select unmatched or EIN-matched recipients."},{"name":"min_match_confidence","in":"query","schema":{"type":"number","minimum":0,"maximum":1}},{"name":"min_amount","in":"query","schema":{"type":"number"}},{"name":"max_amount","in":"query","schema":{"type":"number"}},{"name":"year","in":"query","schema":{"type":"integer"}},{"name":"include_facets","in":"query","schema":{"type":"string","enum":["1"]},"description":"Adds capped facets by year, state, category, grantor, and recipient."}],"responses":{"200":{"description":"Successful JSON response","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"422":{"$ref":"#/components/responses/InvalidParameter"}}}},"/v1/grants/{grant_id}":{"get":{"summary":"Get one grant by its GrantAtlas ID","security":[{"apiKeyAuth":[]}],"parameters":[{"name":"grant_id","in":"path","required":true,"schema":{"type":"integer"},"example":3146415}],"responses":{"200":{"description":"Successful JSON response","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"422":{"$ref":"#/components/responses/InvalidParameter"}}}},"/v1/contributors":{"get":{"summary":"Search reported private-foundation Schedule B contributions","security":[{"apiKeyAuth":[]}],"parameters":[{"name":"recipient_ein","in":"query","schema":{"type":"string","pattern":"^\\d{2}-?\\d{7}$"},"description":"Optionally scopes results to the receiving foundation."},{"name":"q","in":"query","schema":{"type":"string"},"description":"Searches contributor, receiving foundation, property description, security, and ticker text."},{"name":"contributor_name","in":"query","schema":{"type":"string"}},{"name":"contributor_state","in":"query","schema":{"type":"string","minLength":2,"maxLength":2}},{"name":"foundation_name","in":"query","schema":{"type":"string"},"description":"Case-insensitive receiving-foundation name match."},{"name":"description_contains","in":"query","schema":{"type":"string"}},{"name":"security_name","in":"query","schema":{"type":"string"}},{"name":"ticker","in":"query","schema":{"type":"string"}},{"name":"year","in":"query","schema":{"type":"integer"}},{"name":"min_amount","in":"query","schema":{"type":"number"}},{"name":"max_amount","in":"query","schema":{"type":"number"}},{"name":"asset_class","in":"query","schema":{"type":"string"}},{"name":"sort","in":"query","schema":{"type":"string","enum":["amount","newest","contributor","foundation"]}},{"name":"cursor","in":"query","schema":{"type":"string"},"description":"Opaque next_cursor value from the previous collection response."},{"name":"include_total","in":"query","schema":{"type":"string","enum":["1"]},"description":"Adds exact total_results and total_pages metadata."},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}}],"responses":{"200":{"description":"Successful JSON response","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"422":{"$ref":"#/components/responses/InvalidParameter"}}}},"/v1/contributors/{ein}":{"get":{"summary":"List reported private-foundation Schedule B contributors","security":[{"apiKeyAuth":[]}],"parameters":[{"name":"ein","in":"path","required":true,"schema":{"type":"string","pattern":"^\\d{2}-?\\d{7}$"},"example":"770165029"},{"name":"q","in":"query","schema":{"type":"string"},"description":"Searches contributor, receiving foundation, property description, security, and ticker text."},{"name":"contributor_name","in":"query","schema":{"type":"string"}},{"name":"contributor_state","in":"query","schema":{"type":"string","minLength":2,"maxLength":2}},{"name":"foundation_name","in":"query","schema":{"type":"string"},"description":"Case-insensitive receiving-foundation name match."},{"name":"description_contains","in":"query","schema":{"type":"string"}},{"name":"security_name","in":"query","schema":{"type":"string"}},{"name":"ticker","in":"query","schema":{"type":"string"}},{"name":"year","in":"query","schema":{"type":"integer"}},{"name":"min_amount","in":"query","schema":{"type":"number"}},{"name":"max_amount","in":"query","schema":{"type":"number"}},{"name":"asset_class","in":"query","schema":{"type":"string"}},{"name":"sort","in":"query","schema":{"type":"string","enum":["amount","newest","contributor","foundation"]}},{"name":"cursor","in":"query","schema":{"type":"string"},"description":"Opaque next_cursor value from the previous collection response."},{"name":"include_total","in":"query","schema":{"type":"string","enum":["1"]},"description":"Adds exact total_results and total_pages metadata."},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}}],"responses":{"200":{"description":"Successful JSON response","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"422":{"$ref":"#/components/responses/InvalidParameter"}}}}},"components":{"securitySchemes":{"apiKeyAuth":{"type":"apiKey","in":"header","name":"x-api-key"}},"responses":{"Unauthorized":{"description":"A valid x-api-key header is required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"InvalidParameter":{"description":"Invalid request parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"schemas":{"Error":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"status":{"type":"integer"}},"required":["code","message","status"]}},"required":["error"]}}}}