This is the api reference. API
bnkai edited this page on Sep 15, 2022 · 14 revisions
 Pages 28
Find a page…
Home
Advanced Configuration Options
API
Scan for new files
Authentication
Generate content
Get Studios
Scrape perfomer attributes from Freeones
Get list of perfomer names that match a name or alias from Freeones
Get System Status
Authentication Required When Accessing Stash From the Internet
Backup & Restore Database
Custom CSS snippets
Exclude file configuration
FAQ
Galleries
Importing via CSV using gql iterate
Installing on FreeNAS TrueNAS
Installing on Synology NAS
JSON Specification
Manually Editing the Stash Sqlite3 database
Modern Dark
Clone this wiki locally
https://github.com/stashapp/stash.wiki.git
There is a GraphQL API which allows to do things automatically.

All http requests have to go to http://IP:PORT/graphql

Data from the API can be outdated from time to time. In that case you can either visit our discord channel for more help or make an issue.

For up to date info you can check stash's playground http://IP:PORT/playground ( SCHEMA/DOCS section to the right).

Scan for new files
Request: HTTP-POST

Payload (set useFileMetadata to true or false if you want to get metadata from the media file ):

{
 "query": "mutation { metadataScan ( input: { useFileMetadata: true } ) } "
}
Example using curl

curl -X POST -H "Content-Type: application/json" --data '{ "query": " mutation { metadataScan (input: { useFileMetadata: false} ) }" }' localhost:9998/graphql

Authentication
If you have configured a username/password you have to use cookies to authenticate

curl --verbose --cookie-jar cookie.txt --data 'username=stash&password=\*\*' localhost:9998/login
curl --cookie cookie.txt -H "Content-Type: application/json" --data '{ "query": "mutation { metadataScan ( input: { useFileMetadata: false } ) } "}' localhost:9998/graphql
Latest dev version has support for API Keys.

Using the API Key is recommended instead of the above cookie method.

You just need to add the key you generated in stash ( for more info about the API Key check stash's help section ) in a header for every request you make

curl -X POST -H "ApiKey: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOiJiaWxsIiwiaWF0IjoxNjE3MDkzMDYwLCJzdWIiOiJBUElLZXkifQ.WhUyvmnVeW8wGV5fkVyje3xLfz5A97HFwyZy-4i8Q-I" -H "Content-Type: application/json" --data '{ "query": "mutation { metadataScan (input:{useFileMetadata: false})}" }' localhost:9998/graphql
Generate content
Request: HTTP-POST

Payload (set desired content to generate sprites,previews,imagePreviews,markers,transcodes to true or false):

{
 "query": "mutation { metadataGenerate ( input : { sprites: true previews: false imagePreviews: false markers: false transcodes: false } ) }" 
}
Example using curl

curl -X POST -H "Content-Type: application/json" --data '{ "query": "mutation { metadataGenerate ( input : { sprites: false previews: true imagePreviews: false markers: false transcodes: false } ) }" }' localhost:9998/graphql

Get Studios
Request: HTTP-POST

Payload ( must be at least one of id checksum url name image\_path scene\_count ):

{
 "query": "{ allStudios { id checksum url name image\_path scene\_count } }" 
}
Example using curl

curl -X POST -H "Content-Type: application/json" --data '{ "query": "{ allStudios { name url scene\_count} }" }' localhost:9998/graphql

Scrape perfomer attributes from Freeones
Request: HTTP-POST

Payload (

$performer name is the name of the Performer you are scraping for
return values must be at least one of name url twitter instagram birthdate ethnicity country eye\_color height measurements fake\_tits career\_length tattoos piercings aliases
):

{
 "query": "{ scrapeFreeones(performer\_name: $performer\_name) { name url twitter instagram birthdate ethnicity country eye\_color height measurements fake\_tits career\_length tattoos piercings aliases } }" 
}
Caution is needed when used in a script.Always set a waiting/sleep period between calls to avoid getting blacklisted by Freeones
Due to way it's used in Stash and to work reliably it requires the prior use of scrapeFreeonesPerfomerList (described beneath) to make sure the name of the performer exists in the list returned and thus in the Freeones db
Example using curl

curl -X POST -H "Content-Type: application/json" --data '{ "query": "{ scrapeFreeones ( performer\_name : \"Abella Danger\" ) { name height birthdate} }" }' localhost:9998/graphql

Get list of perfomer names that match a name or alias from Freeones
Request: HTTP-POST

Payload ( $q is the name or alias (or partial name , alias) of the performer you are looking for ):

{
 "query": "{ scrapeFreeonesPerformerList(query: $q) }" 
}
Caution is needed when used in a script.Always set a waiting/sleep period between calls to avoid getting blacklisted by Freeones
Example using curl

curl -X POST -H "Content-Type: application/json" --data '{ "query": "{ scrapeFreeonesPerformerList (query: \"bella\" ) }" }' localhost:9998/graphql

Get System Status
Request: HTTP-POST

{
 "query": "{ systemStatus { databaseSchema databasePath configPath appSchema status } }" 
}
Example using curl

curl -X POST -H "Content-Type: application/json" --data '{ "query": "{ systemStatus { appSchema status } }" }' localhost:9999/graphql
API 참조입니다. API
bnkai 님이 이 페이지를 2022년 9월 15일에 수정했습니다 - 14 수정
 28 페이지
페이지 찾기...
홈
고급 구성 옵션
API
새 파일 검색
인증
콘텐츠 생성
스튜디오 가져오기
Freeones에서 퍼포머 속성 스크랩하기
Freeones에서 이름 또는 별칭과 일치하는 퍼포머 이름 목록 가져오기
시스템 상태 가져오기
인터넷에서 Stash에 액세스할 때 인증 필요
데이터베이스 백업 및 복원
사용자 정의 CSS 스니펫
파일 구성 제외
자주 묻는 질문
갤러리
gql 반복을 사용하여 CSV를 통해 가져오기
FreeNAS TrueNAS에 설치
Synology NAS에 설치
JSON 사양
Stash Sqlite3 데이터베이스 수동 편집하기
모던 다크
이 위키를 로컬로 복제
https://github.com/stashapp/stash.wiki.git
자동으로 작업을 수행할 수 있는 GraphQL API가 있습니다.

모든 http 요청은 http://IP:PORT/graphql 으로 이동해야 합니다.

API의 데이터는 때때로 오래되었을 수 있습니다. 이 경우 디스코드 채널을 방문하여 추가 도움을 받거나 문제를 제기할 수 있습니다.

최신 정보는 보관소의 놀이터 http://IP:PORT/playground (오른쪽의 SCHEMA/DOCS 섹션)에서 확인할 수 있습니다.

새 파일 검색
요청: HTTP-POST

페이로드(미디어 파일에서 메타데이터를 가져오려면 useFileMetadata를 참 또는 거짓으로 설정하세요):

{
 "쿼리": "변이 { 메타데이터스캔 ( 입력: { 사용파일메타데이터: true } ) } "
}
curl 사용 예

curl -X POST -H "Content-Type: application/json" --data '{ "query": " 돌연변이 { 메타데이터스캔 (입력: { 사용파일메타데이터: false} ) }" }' localhost:9998/graphql

인증
사용자 이름/비밀번호를 구성한 경우 쿠키를 사용하여 인증해야 합니다.

curl --verbose --cookie-jar cookie.txt --data 'username=stash&password=\*\*' localhost:9998/login
curl --cookie cookie.txt -H "Content-Type: application/json" --data '{ "query": "mutation { metadataScan ( 입력: { useFileMetadata: false } ) } "}' localhost:9998/graphql
최신 개발 버전은 API 키를 지원합니다.

위의 쿠키 방법 대신 API 키를 사용하는 것이 좋습니다.

모든 요청의 헤더에 다음과 같이 스태시에서 생성한 키를 추가하기만 하면 됩니다(API 키에 대한 자세한 내용은 스태시의 도움말 섹션을 참조하세요).

curl -X POST -H "ApiKey: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOiJiaWxsIiwiaWF0IjoxNjE3MDkzMDYwLCJzdWIiOiJBUElLZXkifQ. WhUyvmnVeW8wGV5fkVyje3xLfz5A97HFwyZy-4i8Q-I" -H "Content-Type: application/json" --data '{ "query": "변이 { 메타데이터스캔 (입력:{사용파일메타데이터: false})}" }' localhost:9998/graphql
콘텐츠 생성
요청: HTTP-POST

페이로드(스프라이트, 미리보기, 이미지 미리보기, 마커, 트랜스코드를 생성할 원하는 콘텐츠를 참 또는 거짓으로 설정):

{
 "쿼리": "mutation { metadataGenerate ( 입력 : { sprites: true previews: false imagePreviews: false markers: false transcodes: false } ) ) }" 
}
curl 사용 예

curl -X POST -H "Content-Type: application/json" --data '{ "query": "mutation { metadataGenerate ( 입력 : { 스프라이트 : 거짓 미리보기 : 참 이미지 미리보기 : 거짓 마커 : 거짓 트랜스코드 : 거짓 } ) ) }" }' localhost:9998/graphql

스튜디오 가져오기
요청: HTTP-POST

페이로드 (아이디 체크섬 URL 이름 이미지\_경로 장면\_count 중 하나 이상이어야 함):

{
 "쿼리": "{ allStudios { id 체크섬 url 이름 이미지\_경로 장면\_count } }" 
}
curl 사용 예

curl -X POST -H "Content-Type: application/json" --data '{ "query": "{ allStudios { 이름 url 장면\_count} }" }' localhost:9998/graphql

Freeones에서 퍼포머 속성 스크랩
요청: HTTP-POST

페이로드 (

퍼포머 이름은 스크랩하려는 퍼포머의 이름입니다.
반환 값은 이름 URL 트위터 인스타그램 생년월일 민족 국가 눈\_색상 키 측정 가짜\_tits 경력\_길이 문신 피어싱 별칭 중 하나 이상이어야 합니다.
):

{
 "쿼리": "{ scrapeFreeones(performer\_name: $performer\_name) { 이름 url 트위터 인스타그램 생년월일 민족 국가 눈\_색상 키 측정 가짜\_tits 경력\_길이 문신 피어싱 별칭 } } }" 
}
스크립트에서 사용할 때는 주의가 필요하며, 프리존에서 블랙리스트에 오르지 않도록 항상 통화 사이에 대기/휴면 시간을 설정하세요.
Stash에서 사용되는 방식과 안정적으로 작동하려면 스크래핑FreeonesPerfomerList(아래 설명)를 미리 사용하여 반환된 목록에 공연자의 이름이 있는지, 따라서 Freeones DB에 있는지 확인해야 합니다.
curl 사용 예

curl -X POST -H "Content-Type: application/json" --data '{ "query": "{ scrapeFreeones ( performer\_name : \"Abella Danger\" ) { name height birthdate} }" }' localhost:9998/graphql

Freeones에서 이름 또는 별칭과 일치하는 퍼포머 이름 목록 가져오기
요청: HTTP-POST

페이로드 ($q는 찾고자 하는 퍼포머의 이름 또는 별칭(또는 일부 이름, 별칭)입니다):

{
 "쿼리": "{ scrapeFreeonesPerformerList(쿼리: $q) }" 
}
스크립트에서 사용할 때는 주의가 필요하며, 프리원스 블랙리스트에 포함되지 않도록 항상 통화 사이에 대기/휴면 기간을 설정해야 합니다.
curl 사용 예

curl -X POST -H "Content-Type: application/json" --data '{ "query": "{ scrapeFreeonesPerformerList (query: \"bella\" ) }" }' localhost:9998/graphql

시스템 상태 가져오기
Reques